使用cl.exe和/ link.exe构建的Vscode C ++调试代码-调试器未附加

时间:2019-02-24 20:24:12

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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能够令人满意地调试可执行文件,但是 我不能保证这一点。