【问题标题】:Vscode C++ debugging code built with cl.exe and / link.exe - debugger doesn't attach用cl.exe和/link.exe构建的Vscode C++调试代码——调试器不附加
【发布时间】:2019-07-18 06:21:40
【问题描述】:

所以我为我的 c++ 游戏构建了构建系统,使用 gulp.js 调用 cl.exe 和 link.exe 来构建游戏。我正在生成一个输出 pdb 文件的构建,我很确定我已经打开了所有调试符号的东西。

游戏构建良好,但我想将其连接到 vscode 调试器。

现在我在网上看到的绝大多数设置都是有人为调试器设置了launch.json,他们使用的是gdb。我不介意使用 gdb,真的只关心它是否有效。但我正在使用 cl.exe 和 link.exe 生成二​​进制文件。无论如何,我的启动器会很好地启动可执行文件,但就像调试器没有附加一样。例如,没有断点。

以前我用 mingw 构建,一切都很好。我想改用 cl.exe 和 link.exe,但我怀疑这是调试器没有附加的原因。

【问题讨论】:

    标签: c++ visual-studio-code mingw vscode-debugger cl


    【解决方案1】:

    GDB 不是 vscode 调试器;它是一个调试器,您可以在提供的 vscode 中指定 您还使用编译器和链接器生成包含调试信息的二进制文件 GDB 可以识别的形式。

    Microsoft cllink 不是这样的编译器和链接器。 GDB 是the GNU debugger, 并受到 GNU GCC 编译器 - gccg++gfortrangnatgccgo - 和 GNU binutils linkers 的支持。 Microsoft .pdb 调试数据库对 GDB 没有任何意义: 它只能由MS Visual Studio 调试器使用。

    如果您使用cl 选项/Z7 进行编译,则 PE/COFF 调试信息将嵌入到您的目标文件中,如果您使用选项 /DEBUG:NONE 链接 链接器不会生成.pdb。然后您可能会发现 GDB 能够令人满意地调试您的可执行文件,但是 我不能保证这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-28
      • 2017-09-13
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      • 2018-09-23
      相关资源
      最近更新 更多