☰
Minimal Crashpad 工程说明
2026/10/7 8:14:58 网站建设 项目流程

1. 工程目标

这是一个最小化的 Windows Crashpad Demo,用于验证以下完整链路:

  1. 应用程序启动独立的crashpad_handler.exe。
    1. 应用向 handler 注册自身。
    1. 应用故意触发整数除零异常。
    1. handler 在独立进程中读取崩溃进程并生成 Minidump。
    1. 使用匹配的 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>.dmp

crashpad_handler.exe来自 Conan 预编译包,所以不会出现在源码工程中。
CMake 在构建完成后将它复制到MinimalCrashpad.exe旁边。

4. 构建环境

  • Windows x64
    • Visual Studio 2022
    • MSVC 19.4x
    • CMake 3.20+
    • Conan 2
      安装 Conan:
py-m pip install--user conan

conanfile.txt使用:

crashpad/cci.20220219

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询