背景:Qt写的win应用在运行过程中莫名crash,QtCreator下debug也找不到调用者,就找了各种办法,下面这种不仅适用Qt的应用,也适用任何IDE开发的应用。
前提条件:官网下载DebugDiagnostic工具:https://www.microsoft.com/en-us/download/confirmation.aspx?id=26798
方法一:
- 应用弹出无响应后,不要点击“确定”。
- 打开任务管理器,找到崩溃的应用那一行。
- 点右键,点击创建转储文件。
- 等待几秒后,dump文件生成,同时会告诉你存储在哪个文件夹。
- 然后打开DebugDiagnostic,主页点击Add Data Files把刚才的dump文件填入。
- 生成一份堆栈追溯报告。
方法二:
- 先打开DebugDiagnostic。
- 打开Tools/Rule Actions/Add Rule…对话框,选择Crash。
- 点击下一步,选择A specific process。
- 点击下一步,根据需要选择相应的选项,这里选择Log Stack Trace,表示记录崩溃时的堆栈情形。
- 接下来全部默认下一步,规则就添加完毕。
- 现在打开应用程序,等待程序崩溃,崩溃后会自动抓取dump文件并生成报告。