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

问题描述 投票:0回答:1

所以我为我的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个回答
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能够令人满意地调试您的可执行文件,但我无法保证这一点。

© www.soinside.com 2019 - 2024. All rights reserved.