使用gdb调试在MS VC++ 2010 Express中编译的程序

10

能否使用Microsoft Visual C++ Express创建可执行文件,以便可以使用gdb进行调试?

我尝试使用C7兼容的/Z7编译器选项和/debug链接器选项,但生成的.pdb文件无法被gdb识别:

(gdb) symbol-file HelloWorldVC.pdb
`HelloWorldVC.pdb': can't read symbols: File format not recognized.

2
正如Harper所提到的,我也不认为使用GDB进行调试有任何优势。VS远远领先。 - Ajay
简而言之,不行... - Seva Alekseyev
不,不能使用MSVC。但是,GCC和LLVM编译器都可以作为Windows二进制文件使用,可以用于编译包含符号的二进制文件,其中gdb和lldb都可以正常工作。目前,lldb对msvc pdb调试文件的支持仅有限。 - Dweezahr
1个回答

2

GDB使用的调试格式与微软编译器不同。事实上,PDB格式没有文档说明。 因此,您无法使用Microsoft编译器生成的调试信息来调试GDB。

老实说,我找不到任何使用GDB而不是Microsoft Visual Studio调试器的好处。


8
好处是独立于IDE。我不喜欢Visual Studio IDE。 - rmflow
1
@rmflow 当独立性是一个标准时,你不应考虑专有编译器。 - harper
9
微软的PDB格式现在已经在GitHub上正式公开文档 - Christopher Pelloux
我从未在Microsoft的github上看到过“官方文档”。如果在那里找到PDB的文档,那将是一个惊喜。阅读问题列表,您会发现一些代码片段已发布以帮助理解。我不会称之为官方文档。 - harper
@harper:“这个仓库的大部分内容都是来自VC++编译器工具集的实际源文件。” 由微软公司发布的“实际”源文件。还有比这更正式的吗?我错过了什么吗?我一定是漏掉了什么…… - SO_fix_the_vote_sorting_bug
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接