ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Minimal Crashpad 工程说明

Minimal Crashpad 工程说明 1. 工程目标这是一个最小化的 Windows Crashpad Demo,用于验证以下完整链路:应用程序启动独立的crashpad_handler.exe。应用向 handler 注册自身。应用故意触发整数除零异常。handler 在独立进程中读取崩溃进程并生成 Minidump。使用匹配的 PDB 在 WinDbg 中还原函数名和源码行。本工程只在本地保存 Dump,不配置上传服务器,也不包含崩溃上报后台。2. Crashpad 架构Crashpad 采用客户端加独立 handler 的双进程架构:MinimalCrashpad.exe | | StartHandler + Named Pipe 注册 v crashpad_handler.exe | | 目标进程发生未处理异常 | 跨进程读取线程、寄存器和内存 v crashpad_db\reports\uuid.dmp与直接在崩溃进程内调用MiniDumpWriteDump相比,Crashpad 将主要的 Dump写入工作放到独立进程中。即使客户端进程的堆、锁或运行时状态已经损坏,handler 仍有机会完成采集。3. 工程文件Minimal_Crashpad\ |-- main.cpp # Crashpad 初始化和除零崩溃触发 |-- CMakeLists.txt # 目标、依赖、PDB 和 handler 复制规则 |-- conanfile.txt # Crashpad Conan 依赖 |-- build.ps1 # 一键安装依赖、生成解决方案并构建 `-- README.md # 本文档构建产物不放在源码目录,而是统一写入:02_Debugging_and_Crash\b-crashpad\vs\Release\ |-- MinimalCrashpad.exe |-- MinimalCrashpad.pdb |-- crashpad_handler.exe `-- crashpad_db\ |-- metadata |-- settings.dat `-- reports\ `-- uuid.dmpcrashpad_handler.exe来自 Conan 预编译包,所以不会出现在源码工程中。CMake 在构建完成后将它复制到MinimalCrashpad.exe旁边。4. 构建环境Windows x64Visual Studio 2022MSVC 19.4xCMake 3.20+Conan 2安装 Conan:py-m pip install--user conanconanfile.txt使用:crashpad/cci.20220219
返回列表