3

我有一个项目需要使用 3 个编译器(Borland、gnu 和 Microsoft)。它适用于 2/3,现在我只需要让它与微软一起工作。它似乎在与其他编译器一起正常工作的地方崩溃了,所以我想知道是否有一种方法可以使用命令行进行调试,也许是获取堆栈跟踪或获取导致崩溃的行,类似于gdb与gnu。

4

5 回答 5

5

(完全披露:我在 Visual Studio 团队工作)

如果您使用的是 Microsoft C++ 编译器,是否已经安装了 Visual Studio?如果是这样,您可以使用内置调试器。如果没有,我建议免费试用Visual C++ 2010 Express。它有一个优秀的本地调试器。您可以中断第一次机会异常(C++、SEH、Win32 异常),并直接转到发生异常的行以及调用堆栈、本地变量等。

于 2010-08-13T00:13:40.727 回答
2

Windows 调试工具- 一个出色的调试工具包,包括cdb控制台ntsd调试器(除了 GUI WinDBG 调试器)。

该软件包具有出色的文档,可以轻松设置为处理崩溃的“及时”调试器,并且与崩溃转储一起工作得非常好。

这些是 Microsoft 用于崩溃分析(以及更多)的核心调试工具。

请注意,Windows 附带了一个ntsd调试器版本(至少它曾经 - 看起来它不在工具包安装之外的我的 Win7 盒子上),但无论如何获取包是个好主意,这样你就有了最新的工具 - 并且就像我说的那样,这些文档包含了大量的重要信息。

于 2010-08-12T23:57:52.200 回答
1

是的。

C++:在命令行上构建

C#:请参阅 csc.exe 的以调试为中心的选项

于 2010-08-12T23:54:16.813 回答
1

好吧,您遇到了一个编译器的问题,该编译器会非常努力地故意使您的程序崩溃。它被称为“运行时错误检查”,即 /RTC 选项编译选项。您可以将其关闭以使其表现得像其他人一样。或者你可以追求“这里有问题”的角度。它在 /RTC 的 MSDN 库文章中有详细记录。

于 2010-08-13T00:26:27.643 回答
0

Codeview 是一个较旧的产品,它可以做到这一点,但你没有理由不能使用 Visual Studio 来做同样的事情。

于 2010-08-12T23:54:28.370 回答