DrMingw 开源项目教程
drmingwPostmortem debugging tools for MinGW.项目地址:https://gitcode.com/gh_mirrors/dr/drmingw
项目介绍
DrMingw 是一个用于 MinGW 的后期调试工具,它能够在应用程序抛出未处理的异常时,自动附加到应用程序并收集异常信息。DrMingw 支持读取由 Gnu C/C++ 编译器生成的 DWARF 格式调试信息,以及由 Microsoft Visual C++ 编译器生成的 PDB 文件。它依赖于 DbgHelp 库来解析由 Microsoft 工具编译的模块中的符号。
项目快速启动
安装 DrMingw
首先,从 GitHub 仓库下载 DrMingw 的最新版本:
git clone https://github.com/jrfonseca/drmingw.git
进入项目目录并安装:
cd drmingw
drmingw -i
确保你有管理员权限,因为 DrMingw 会通过写入系统注册表来注册自己作为 JIT 调试器。
使用 DrMingw
在你的应用程序中,当发生未处理的异常时,DrMingw 会自动附加并收集信息。你也可以手动启动 DrMingw 进行调试:
drmingw -b -p <application_pid>
应用案例和最佳实践
案例一:调试崩溃的应用程序
假设你有一个名为 myapp.exe
的应用程序崩溃了,你可以使用 DrMingw 来收集崩溃信息:
drmingw -b -p myapp.exe
DrMingw 会生成一个崩溃报告,包含堆栈跟踪、异常信息等,帮助你定位问题。
最佳实践
- 环境变量设置:确保
_NT_SYMBOL_PATH
环境变量设置正确,以便 DrMingw 能够找到 PDB 文件。 - 详细调试信息:在编译时使用
-g3 -ggdb
选项生成更详细的调试信息,有助于 DrMingw 提供更准确的报告。
典型生态项目
相关工具
- addr2line:MinGW 自带的工具,用于将地址转换为文件名和行号。
- cv2pdb:将 DWARF 格式转换为 PDB 格式的工具。
- Breakpad 和 Crashpad:Google 开发的崩溃报告系统,与 DrMingw 结合使用可以更好地处理崩溃信息。
学习资源
- MSJEXHND:一系列关于 Win32 结构化异常处理的深入文章。
- Bugslayer:关于 Win32 调试 API 的应用编程接口的文章。
通过这些工具和资源,你可以更深入地理解和使用 DrMingw,提升你的调试技能。
drmingwPostmortem debugging tools for MinGW.项目地址:https://gitcode.com/gh_mirrors/dr/drmingw