hur.cn - 华软网

 热门搜索

使用windbg调试dmp文件无法直接定位到源文件吗?

  作者:未知    来源:网络    更新时间:2015/5/13
程序使用SetUnhandledExceptionFilter崩溃生成的dmp文件
用windbg打开,在“符号文件路径”设置为"E:\windbg\SymbolsDir;SRV*E:\windbg\SymbolsDir*http://msdl.microsoft.com/download/symbols;C:\Users\Test\Desktop\Test0001\Release"
"C:\Users\Test\Desktop\Test0001"就是VS2008创建的项目目录
然后在windbg下使用!analyze -v,似乎无法直接定位到出问题的代码位置啊?
0:021> .reload
........................................
0:021> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for luaplus_1100.dll - 
*** WARNING: Unable to verify checksum for libmysql.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for libmysql.dll - 
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: kernel32!pNlsUserInfo                         ***
***                                                                   ***
*************************************************************************
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: kernel32!pNlsUserInfo                         ***
***                                                                   ***
*************************************************************************

FAULTING_IP: 
ntdll!RtlpUnWaitCriticalSection+3b
7c97af4d cc              int     3

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 7c97af4d (ntdll!RtlpUnWaitCriticalSection+0x0000003b)
   ExceptionCode: c0000024
  ExceptionFlags: 00000001
NumberParameters: 0

BUGCHECK_STR:  c0000024

DEFAULT_BUCKET_ID:  APPLICATION_FAULT

PROCESS_NAME:  Test0001.exe

ERROR_CODE: (NTSTATUS) 0xc0000024 - {

EXCEPTION_CODE: (NTSTATUS) 0xc0000024 - {

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

FAULTING_THREAD:  00000a90

LAST_CONTROL_TRANSFER:  from 7c96d2dc to 7c97af4d

STACK_TEXT:  
02b6fe6c 7c96d2dc 00495f54 00495f38 00495f54 ntdll!RtlpUnWaitCriticalSection+0x3b
02b6fe84 00446a0e 00495f54 001759d8 000002b8 ntdll!RtlLeaveCriticalSection+0x4c
02b6fe98 0044259e 00000000 00000000 b88c9749 Test0001!CThreadSlotData::DeleteValues+0x56 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtls.cpp @ 401]
02b6fed4 0044293f 00000000 01f6fd98 00000000 Test0001!AfxTermThread+0x6d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 460]
02b6fee8 00442e4b 00000000 00000001 b88c96e9 Test0001!AfxEndThread+0x3a [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 388]
02b6ff74 0044f6ee 01f6fd98 b88c9631 00000000 Test0001!_AfxThreadEntry+0x106 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 129]
02b6ffac 0044f796 00000000 02b6ffec 7c82482f Test0001!_callthreadstartex+0x1b [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348]
02b6ffb8 7c82482f 044a64e8 00000000 00000000 Test0001!_threadstartex+0x82 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326]
02b6ffec 00000000 0044f714 044a64e8 00000000 kernel32!BaseThreadStart+0x34


FOLLOWUP_IP: 
Test0001!AfxTermThread+6d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 460]
0044259e e879b50000      call    Test0001!_EH_epilog3 (0044db1c)

FAULTING_SOURCE_CODE:  
No source found for 'f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp'


SYMBOL_STACK_INDEX:  3

SYMBOL_NAME:  Test0001!AfxTermThread+6d

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: Test0001

IMAGE_NAME:  Test0001.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  55514336

STACK_COMMAND:  ~21s; .ecxr ; kb

BUCKET_ID:  c0000024_Test0001!AfxTermThread+6d

FAILURE_BUCKET_ID:  APPLICATION_FAULT_c0000024_Test0001.exe!AfxTermThread

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/Test0001_exe/0_0_0_0/55514336/ntdll_dll/5_2_3790_3959/45d72002/c0000024/0004af4d.htm?Retriage=1

Followup: MachineOwner
---------

---华软 网友回答---
调用堆栈好像没有你的代码。只有系统触发的错误
---华软网友回复---
貌似符号文件路径应该配置pdb文件目录,而不是项目目录。你用的release版本要配置生成调试信息即pdb文件
---华软网友回复---
“符号文件路径”设置为"E:\windbg\SymbolsDir;SRV*E:\windbg\SymbolsDir*http://msdl.microsoft.com/download/symbols;C:\Users\Test\Desktop\Test0001\Release"
pdb文件的完整路径是c:\users\test\desktop\Test0001\Release\Test0001.pdb
同一个程序的另外一个dmp文件显示如下:
0:025> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for luaplus_1100.dll - 
*** WARNING: Unable to verify checksum for libmysql.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for libmysql.dll - 
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: kernel32!pNlsUserInfo                         ***
***                                                                   ***
*************************************************************************
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: kernel32!pNlsUserInfo                         ***
***                                                                   ***
*************************************************************************

FAULTING_IP: 
ntdll!RtlFreeHeap+503
7c93eef0 8b11            mov     edx,dword ptr [ecx]

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 7c93eef0 (ntdll!RtlFreeHeap+0x00000503)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: abc9e5ce
Attempt to read from address abc9e5ce

PROCESS_NAME:  Test0001.exe

ERROR_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx

EXCEPTION_PARAMETER1:  00000000

EXCEPTION_PARAMETER2:  abc9e5ce

READ_ADDRESS:  abc9e5ce 

FOLLOWUP_IP: 
ntdll!RtlFreeHeap+503
7c93eef0 8b11            mov     edx,dword ptr [ecx]

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

ADDITIONAL_DEBUG_TEXT:  Enable Pageheap/AutoVerifer

FAULTING_THREAD:  0000a830

BUGCHECK_STR:  APPLICATION_FAULT_HEAP_CORRUPTION_INVALID_POINTER_WRITE_INVALID_POINTER_READ

PRIMARY_PROBLEM_CLASS:  HEAP_CORRUPTION_INVALID_POINTER_WRITE

DEFAULT_BUCKET_ID:  HEAP_CORRUPTION_INVALID_POINTER_WRITE

LAST_CONTROL_TRANSFER:  from 0044ae71 to 7c93eef0

STACK_TEXT:  
0428fe80 0044ae71 00ec0000 00000000 00ecc540 ntdll!RtlFreeHeap+0x503
0428fec0 004429a4 00ecc540 00ecc540 0428fee8 Test0001!free+0x6e [f:\dd\vctools\crt_bld\self_x86\crt\src\free.c @ 110]
0428fed0 0044265e 00000001 00442934 01f6fd98 Test0001!CWinThread::`scalar deleting destructor'+0x19
0428fed8 00442934 01f6fd98 00000000 0428ff74 Test0001!CWinThread::Delete+0xd [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 591]
0428fee8 00442e4b 00000000 00000001 759ad32a Test0001!AfxEndThread+0x2f [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 381]
0428ff74 0044f6ee 01f6fd98 759ad3f2 00000000 Test0001!_AfxThreadEntry+0x106 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 129]
0428ffac 0044f796 00000000 0428ffec 7c82482f Test0001!_callthreadstartex+0x1b [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348]
0428ffb8 7c82482f 044ddc30 00000000 00000000 Test0001!_threadstartex+0x82 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326]
0428ffec 00000000 0044f714 044ddc30 00000000 kernel32!BaseThreadStart+0x34


SYMBOL_NAME:  heap_corruption!heap_corruption

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: heap_corruption

IMAGE_NAME:  heap_corruption

DEBUG_FLR_IMAGE_TIMESTAMP:  0

STACK_COMMAND:  ~25s; .ecxr ; kb

FAILURE_BUCKET_ID:  HEAP_CORRUPTION_INVALID_POINTER_WRITE_c0000005_heap_corruption!heap_corruption

BUCKET_ID:  APPLICATION_FAULT_HEAP_CORRUPTION_INVALID_POINTER_WRITE_INVALID_POINTER_READ_heap_corruption!heap_corruption

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/Test0001_exe/0_0_0_0/55514336/ntdll_dll/5_2_3790_3959/45d72002/c0000005/0000eef0.htm?Retriage=1

Followup: MachineOwner
---------

---华软网友回复---


0:025> lm
start    end        module name
00380000 003cd000   log4cplus   (private pdb symbols)  c:\source\log4cplus\msvc8\Win32\log4cplus_dll.Release\log4cplus.pdb
00400000 004b2000   Test0001   (private pdb symbols)  c:\users\test\desktop\Test0001\Release\Test0001.pdb
004c0000 004fd000   luaplus_1100   (export symbols)       luaplus_1100.dll
10000000 10043000   libmysql C (export symbols)       libmysql.dll
4c510000 4c53e000   MSCTFIME   (pdb symbols)          e:\windbg\symbolsdir\msctfime.pdb\593A990ED97E433EB23DB2E8AF52347C1\msctfime.pdb
69660000 696b7000   hnetcfg    (pdb symbols)          e:\windbg\symbolsdir\HNetCfg.pdb\AC51728FD46C4650AE70BD7B4478E2D71\HNetCfg.pdb
6d830000 6d8d8000   dbghelp    (pdb symbols)          e:\windbg\symbolsdir\dbghelp.pdb\EF3A8A7F974A4ADAA18F744BF364D6F21\dbghelp.pdb
71a40000 71a48000   wshtcpip   (pdb symbols)          e:\windbg\symbolsdir\wshtcpip.pdb\03B722A900574277ACBCF8ACCDA8104D1\wshtcpip.pdb
71a80000 71ac0000   mswsock    (pdb symbols)          e:\windbg\symbolsdir\mswsock.pdb\8EA83997D9514A5CBB3FC2D20F5D72D22\mswsock.pdb
71b10000 71b1b000   wsock32    (pdb symbols)          e:\windbg\symbolsdir\wsock32.pdb\3E800C7A2\wsock32.pdb
71b50000 71b58000   ws2help    (pdb symbols)          e:\windbg\symbolsdir\ws2help.pdb\FB59150B0AE644A6A51AA966D0AA57C42\ws2help.pdb
71b60000 71b77000   ws2_32     (pdb symbols)          e:\windbg\symbolsdir\ws2_32.pdb\BD245DC4AC4145608C9C0B1637F5F4D42\ws2_32.pdb
72f40000 72f67000   winspool   (pdb symbols)          e:\windbg\symbolsdir\winspool.pdb\077BCB2CC2364A8C82010B1ED5E025AA2\winspool.pdb
74ae0000 74b45000   usp10      (pdb symbols)          e:\windbg\symbolsdir\usp10.pdb\7F2FFB255C4C481FABC9D1159BE2F7081\usp10.pdb
75d60000 75d87000   apphelp    (pdb symbols)          e:\windbg\symbolsdir\apphelp.pdb\5E92D6451F8046B0844C3F33E030080F2\apphelp.pdb
76180000 7619d000   imm32      (pdb symbols)          e:\windbg\symbolsdir\imm32.pdb\E205F73408B94416B1344FC1F830AD6C2\imm32.pdb
761a0000 761e7000   comdlg32   (pdb symbols)          e:\windbg\symbolsdir\comdlg32.pdb\AE9FB59C38B54CC7AA9BEDADCE79B5FA2\comdlg32.pdb
76ab0000 76abb000   psapi      (pdb symbols)          e:\windbg\symbolsdir\psapi.pdb\B91B5F1F0EA14B6DAF3CDDCDE852E86D1\psapi.pdb
76e30000 76e5b000   dnsapi     (pdb symbols)          e:\windbg\symbolsdir\dnsapi.pdb\02F7582A0BC34A1F8C37CEAB994EF5912\dnsapi.pdb
76e70000 76e9e000   wldap32    (pdb symbols)          e:\windbg\symbolsdir\wldap32.pdb\F6AAF03BFEBD4F9499F040C66EE452812\wldap32.pdb
76eb0000 76ec3000   secur32    (pdb symbols)          e:\windbg\symbolsdir\secur32.pdb\49DB2807353F40568153C1B12C41B2882\secur32.pdb
76ed0000 76ed7000   winrnr     (pdb symbols)          e:\windbg\symbolsdir\winrnr.pdb\A009F29962AA476F8EBCC321F27D96F11\winrnr.pdb
76ee0000 76ee5000   rasadhlp   (pdb symbols)          e:\windbg\symbolsdir\rasadhlp.pdb\A2F2E26F677F4E378192DD3D0D6FF6291\rasadhlp.pdb
77370000 77407000   comctl32   (pdb symbols)          e:\windbg\symbolsdir\MicrosoftWindowsCommon-Controls-5.82.3790.3959-comctl32.pdb\D9DDB4CC13ED4E3AB8B2A8C5694382EE1\MicrosoftWindowsCommon-Controls-5.82.3790.3959-comctl32.pdb
774b0000 775e9000   ole32      (pdb symbols)          e:\windbg\symbolsdir\ole32.pdb\DC8A079CAE0B4A0C89EC5A936EAF1F7F2\ole32.pdb
775f0000 7767c000   oleaut32   (pdb symbols)          e:\windbg\symbolsdir\oleaut32.pdb\B6F81BEB845B427CBD91EEE88329A0FB2\oleaut32.pdb
77b60000 77b68000   version    (pdb symbols)          e:\windbg\symbolsdir\version.pdb\6025B865B3C847A7A888D9D7DC39C9362\version.pdb
77b70000 77bca000   msvcrt     (pdb symbols)          e:\windbg\symbolsdir\msvcrt.pdb\A7F38CEE7E684B94B7AA9FFFCAB446851\msvcrt.pdb
77bd0000 77c19000   gdi32      (pdb symbols)          e:\windbg\symbolsdir\gdi32.pdb\C7F41D33566043FF805B48DA326869AD2\gdi32.pdb
77c20000 77cbf000   rpcrt4     (pdb symbols)          e:\windbg\symbolsdir\rpcrt4.pdb\A0B2C6752B324071A7EF94000E168D582\rpcrt4.pdb
77cd0000 77dd3000   comctl32_77cd0000   (pdb symbols)          e:\windbg\symbolsdir\comctl32.pdb\62253C4D28794865A5E404445288DE101\comctl32.pdb
77e10000 77ea0000   user32     (pdb symbols)          e:\windbg\symbolsdir\user32.pdb\1AE19639F6CB4C24B578A272F27213A52\user32.pdb
77eb0000 77f02000   shlwapi    (pdb symbols)          e:\windbg\symbolsdir\shlwapi.pdb\8287669DB8BD474882C313C5E0ACACCF2\shlwapi.pdb
77f30000 77fdb000   advapi32   (pdb symbols)          e:\windbg\symbolsdir\advapi32.pdb\3DAF93B794D047E7AD312552A4B6D5772\advapi32.pdb
78480000 7850d000   msvcp90    (pdb symbols)          e:\windbg\symbolsdir\msvcp90.i386.pdb\82430969901E466886C96C1F5FA168361\msvcp90.i386.pdb
78520000 785c3000   msvcr90    (pdb symbols)          e:\windbg\symbolsdir\msvcr90.i386.pdb\2AA5F2EF13C54F26987FB6B738E846331\msvcr90.i386.pdb
7c800000 7c92b000   kernel32   (pdb symbols)          e:\windbg\symbolsdir\kernel32.pdb\BE496DC9472F4438B080C70594D8F9CC2\kernel32.pdb
7c930000 7ca00000   ntdll      (pdb symbols)          e:\windbg\symbolsdir\ntdll.pdb\93E72E109DC84F16AA54797E4DA8C1682\ntdll.pdb
7ca10000 7d1ec000   shell32    (pdb symbols)          e:\windbg\symbolsdir\shell32.pdb\2372499773F0415BBB474D9A23F111FA2\shell32.pdb
7f000000 7f009000   lpk        (pdb symbols)          e:\windbg\symbolsdir\lpk.pdb\3695A0DA19AD417C9E269A4B06A38E9D1\lpk.pdb

---华软网友回复---
兄弟,你这个问题解决了么?我刚接触到windbg,也遇到这个问题,菜鸟求助      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。