从崩溃地址定位代码位置的实用技巧
在软件开发过程中,程序崩溃是常见的问题。当程序崩溃时,操作系统有时会提供崩溃地址,但仅有这个地址往往不足以快速定位问题。本文将介绍两种将崩溃地址转换为源文件、函数名和行号的方法:使用 MAP 文件和 CrashFinder 工具。
1. 获取崩溃地址
在 Windows 系统中,不同版本获取崩溃地址的方式有所不同:
-Windows XP:默认的未处理异常处理程序显示的崩溃对话框不再显示崩溃地址。需要点击“To See What Data This Error Report Contains, Click Here”链接,在接下来的对话框中,再点击“To View Technical Information About The Error Report, Click Here”链接,在“Error Report Contents”对话框中可以看到崩溃地址和所有已加载的模块。不过,该对话框中的信息在静态控件中,无法复制。
-Windows 2000 和 Windows Server 2003:始终会在崩溃对话框中显示崩溃地址。
此外,如果将 Dr. Watson 设置为默认调试器(若未设置,可让用户运行 DRWTSN32.EXE –i 进行设置),无论在崩溃对话框中点击哪个按钮,Dr. Watson 都会运行。用户可以使用 DRWTSN32.EXE 命令启动 Dr. Watson,并从其用户界面复制崩溃信息。还可以让用户在 Dr. Watson UI 中勾选“Create Crash Dump File”并记录文件保存位置,以便获取 minidu