qt vs编译器运行错误时自动生成dump文件
时间: 2023-08-11 17:04:18 浏览: 122
在使用Qt编译器运行程序时出现错误导致程序崩溃时,可以通过设置dump文件来获取程序崩溃时的相关信息,以便于调试。以下是设置dump文件的方法:
1. 在Qt项目中添加一个QCoreApplication实例,代码如下:
```c++
#include <QCoreApplication>
#include <QtDebug>
#include <Windows.h>
LONG WINAPI MyUnhandledExceptionFilter(PEXCEPTION_POINTERS pExceptionInfo)
{
QString dumpFileName = "myapp.dmp";
HANDLE hFile = CreateFile(dumpFileName.toStdWString().c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE) {
MINIDUMP_EXCEPTION_INFORMATION ExInfo;
ExInfo.ThreadId = GetCurrentThreadId();
ExInfo.ExceptionPointers = pExceptionInfo;
ExInfo.ClientPointers = FALSE;
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpWithDataSegs, &ExInfo, NULL, NULL);
CloseHandle(hFile);
}
qFatal("Application has crashed.");
return EXCEPTION_EXECUTE_HANDLER;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
// your code here
return a.exec();
}
```
2. 编译运行程序,程序崩溃时会在程序的当前目录下生成一个名为“myapp.dmp”的dump文件,可以使用Visual Studio打开该文件进行调试。
阅读全文