我有一个C ++应用程序,该应用程序在世界另一端的某人的计算机上崩溃。我无法模拟它或获得同一台计算机。这个人不是开发人员,所以我不能真正要求他安装Visual Studio或其他东西。我有很深的调试日志,但是它们没有显示任何可用的信息。
是否有工具可以在崩溃时生成应用程序的堆栈跟踪?这样的东西在OSX内部可用,但Windows似乎没有。
您可以使用procdump。可以将其设置为调试器,以自动为崩溃的进程创建转储。
Procdump是Sysinternal工具的一部分,可以在以下位置找到:
http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
相关开关:
为挂起的应用程序创建转储:
为其中一个名为“ hang.exe”的进程编写一个小型转储。Windows超过5秒钟没有响应:
C:\>procdump -h hang.exe hungwindow.dmp
为崩溃的应用程序自动创建转储:
注册为即时(AeDebug)调试器。使完全转储c:\ dumps。
C:\>procdump -ma -i c:\dumps
为pid创建转储:
C:\>procdump <PID>
您可以使用windbg读取转储文件:Getting started with dump file analysis
使用Google的lib(使minidump用于msvc进行调试)。CrashRpt