我有一个项目,我需要使用3个编译器(Borland,gnu和Microsoft)。它适用于2/3,现在我只需要使用Microsofts。它似乎在其他编译器工作正常的地方崩溃,所以我想知道是否有一种方法可以使用命令行调试,可能是为了获得堆栈跟踪或获取导致崩溃的行,类似于gdb
与gnu。
答案 0 :(得分:5)
(完全披露:我在Visual Studio团队工作)
如果您使用的是Microsoft C ++编译器,那么您是否已安装Visual Studio?如果是这样,您可以使用内置调试器。如果没有,我建议免费试用Visual C++ 2010 Express。它有一个出色的本机调试器。您可以打破第一次机会异常(C ++,SEH,Win32异常)并直接进入与调用堆栈,本地等一起发生的行。
答案 1 :(得分:2)
Debugging Tools for Windows - 一个出色的调试工具包,包括cdb
和ntsd
控制台调试器(除了GUI WinDBG调试器)。
该软件包具有出色的文档,可以轻松设置为处理崩溃的“及时”调试程序,并且可以非常好地处理崩溃转储。
这些是Microsoft用于崩溃分析的核心调试工具(等等)。
请注意,Windows附带了ntsd
调试器的版本(至少它曾经 - 看起来好像它不在工具包安装之外的Win7盒子上),但是无论如何都要获得这个包是个好主意所以你有最新的工具 - 就像我说的那样,文档是很多很好的信息。
答案 2 :(得分:1)
答案 3 :(得分:1)
好吧,你在使用一个编译器时遇到了麻烦,该编译器试图非常很难故意破坏你的程序。它被称为“运行时错误检查”,即/ RTC选项编译选项。您可以将其关闭以使其行为与其他行为相同。或者你可以追求“这里有些不对劲”的角度。它在/ RTC的MSDN Library文章中有详细记载。
答案 4 :(得分:0)
Codeview是一款较旧的产品,但是没有理由不使用visual studio来做同样的事情。