与 MSVC++ 2010 编译器一起使用的调试器

Posted

技术标签:

【中文标题】与 MSVC++ 2010 编译器一起使用的调试器【英文标题】:Debugger to Use with MSVC++ 2010 Compiler 【发布时间】:2012-01-23 08:20:43 【问题描述】:

假设我使用的是非 Visual Studio,并使用 cl.exe 在命令行中构建,我应该使用什么调试器?

我尝试使用 MinGW 的 gdb.exe,但它似乎与 cl.exe 输出的调试符号不兼容(它报告“没有调试找到符号")。

我觉得这是一个很荒谬的问题,但似乎很难找到关于 MSVC++ 的非 VS 特定信息。

现在我正在使用安装 Visual Studio 2010 Express 只是为了访问 cl.exe,但我不将它用作 IDE。 p>

【问题讨论】:

【参考方案1】:

你应该学习WinDBG,它可以调试用户模式和内核模式代码。正如您所指的 GDB,我认为 WinDBG 的命令行界面对您来说不会是问题 :)

顺便说一句,WinDBG 是 Windows 开发者的官方调试器,所以你可以期待它会被长期支持。

【讨论】:

【参考方案2】:

使用WinDbg。这是一个出色的调试工具,尽管它可能需要一些时间才能进入。 MinGW 不会削减它,因为它使用不同的符号格式。 WinDBG 也是 Windows SDK 的一部分,您可能已经安装了它,所以只需检查您是否已经安装了它。

【讨论】:

【参考方案3】:

如果你有 Visual Studios(我不认为你可以得到 cl.exe 没有它),你仍然可以使用它的调试器。有点笨拙,因为 它将坚持创建各种项目和解决方案文件 您稍后必须删除,但它确实有效。

我过去在这种情况下通常做的是使用 g++ 进行开发 和 gdb(最好在 Linux 下),然后将工作代码移植到 Windows。 这意味着您几乎从不需要 VS 调试器(而 gdb 远 比 VS 调试器更强大)。

【讨论】:

以上是关于与 MSVC++ 2010 编译器一起使用的调试器的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator 安装SDK,在MSVC编译模式下使用CDB调试器

Qt Creator 和 MSVC - 在调试时忽略特定的异常类型?

调试信息是不是显示 C++/MSVC 中的代码?

Qt 调试器不工作 Windows8

错误 C2059:尝试在已知大小的头文件中创建 Qt 容器时出现“常量”

在 MSVC 2010 中编译 64 位应用程序