You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10下Mbed使用GDB调试STM32出现虚拟内存耗尽错误如何解决?

Windows 10 Mbed环境GDB虚拟内存耗尽错误解决方案

报错信息:

/mnt/workspace/workspace/GCC-10-pipeline/jenkins-GCC-10-pipeline-338_20211018_1634516203/src/gdb/gdb/utils.c:671: internal-error: virtual memory exhausted: can't allocate 4064 bytes.
A problem internal to GDB has been detected, further debugging may prove unreliable.

解决方案

  • 更换匹配的工具链版本:当前报错来自GCC 10配套GDB的内部bug,建议卸载当前工具链,安装Mbed官方推荐的GNU Arm Embedded Toolchain 9-2020-q2-update版本,可解决绝大多数该类内存溢出问题。
  • 禁用GDB高内存占用特性:在调试启动脚本或gdbinit配置文件中添加以下命令:
    set auto-load safe-path /
    set print pretty off
    set demangle-style none
    set disable-randomization off
    
  • 调整Windows虚拟内存配置:进入「此电脑-属性-高级系统设置-高级-性能-设置-高级-虚拟内存」,将虚拟内存最小值设为物理内存的1.5倍,最大值设为物理内存的3倍,保证虚拟内存所在磁盘剩余空间不低于20GB,重启系统后生效。
  • 裁剪Mbed项目调试符号:在项目mbed_app.json中添加如下配置,降低调试信息体积:
    {
      "target_overrides": {
        "*": {
          "debug-info-level": "limited"
        }
      }
    }
    
    配置完成后重新编译项目再启动调试。
  • 调整WSL内存限制(若使用WSL运行调试环境):在Windows用户目录下创建.wslconfig文件,写入如下配置:
    [wsl2]
    memory=8GB
    swap=4GB
    
    保存后在PowerShell执行wsl --shutdown重启WSL即可生效。

内容的提问来源于stack exchange,提问作者CH_bot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:36:04