vs中配置qt项目生成dump文件,或者c++项目
lib配置: 项目-->属性-->配置属性-->链接器-->输入-->附加依赖项 增加dbghelp.lib
添加链接器后,在main.cpp添加内容
// 产生一个故意的崩溃-- int* p = nullptr; *p = 0; // 访问违规 return 0;
//用于测试,生成dmp文件
#include <windows.h> #include <DbgHelp.h> #include <iostream> #include "AutxxxoPacxxxkSyxxstem.h" #include <QtWidgets/QApplication> LONG WINAPI MyUnhandledExceptionFilter(EXCEPTION_POINTERS* pExceptionInfo) { HANDLE hFile = CreateFile(L"txwdebug.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile != INVALID_HANDLE_VALUE) { MINIDUMP_EXCEPTION_INFORMATION mdei; mdei.ThreadId = GetCurrentThreadId(); mdei.ExceptionPointers = pExceptionInfo; mdei.ClientPointers = FALSE; MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &mdei, NULL, NULL); CloseHandle(hFile); } return EXCEPTION_EXECUTE_HANDLER; } int main(int argc, char *argv[]) { SymInitialize(GetCurrentProcess(), NULL, TRUE); SetUnhandledExceptionFilter(MyUnhandledExceptionFilter); // 产生一个故意的崩溃 int* p = nullptr; *p = 0; // 访问违规 return 0; QApplication a(argc, argv); AutoxxxPacxxxkSystem w; w.show(); return a.exec(); }
用vs打开txwdebug.dmp文件。
即可自动定位到问题位置
qt creator环境配置方法参考:
欢迎讨论,相互学习。
cdtxw@foxmail.com