获取崩溃后DLL地址的函数

我知道当应用程序崩溃时,系统报告它在mydll.dll中的位置0x00004b79处崩溃。 我有源代码,我有二进制文件,但是我没有PDB或从该DLL的生成的任何列表文件。

崩溃是可重复的,但我不能在生产计算机上安装debugging器,并且在开发或debugging环境中不会发生崩溃。 我已经成立了沃森博士,我有一个崩溃转储和沃森博士日志文件。

Dr.Watson日志文件包含正在执行的函数的反汇编:

10604b70 8b442408 mov eax,[esp+0x8] 10604b74 8b542404 mov edx,[esp+0x4] 10604b78 50 push eax FAULT ->10604b79 8b4120 mov eax,[ecx+0x20] ds:0023:00000020=???????? 10604b7c 52 push edx 10604b7d 6801800000 push 0x8001 10604b82 50 push eax 10604b83 ff156c946210 call dword ptr [mydll!DllUnregisterServer+0x1720c (1062946c)] 10604b89 c20800 ret 0x8 

(INT 3指令先于上面的汇编代码片段并成功。)

堆栈跟踪只包含地址mydll + 0x4b79。 它不给任何来电者的信息。

在windbg中加载故障转储没有提供任何附加信息。

我怎样才能确定什么function(甚至更好,哪一行代码)的崩溃发生?

Solutions Collecting From Web of "获取崩溃后DLL地址的函数"