1. 第一,符号表,我的电脑XP SP3, 下载符号表WindowsXP-KB936929-SP3-x86-symbols-update-ENU.exe,安装完后,设置符号表目录D:\WINDOWS\Symbols(符号表安装在这里), 总是提示符号表找不到,用anlyze -v说符号表不对?2. 做了一个本地的测试,在一个窗口按钮OnBtnDel2():strcat()故意越界,用drwtsn32生产dump文件,想看堆栈信息,我将编译的pdb目录e:\vc\xxx\debug也放到符号表目录,e:\vc\xxx放到源文件目录,打开这个dump文件
但是用堆栈的几个命令都不能看到清晰的信息,和对应的文件行数之类,达不到理想效果,最好的是kd命令,还可看到OnBtnDel2()
0:000> kd
0012f614 00000000
0012f618 0012f800
0012f61c 00143be0
0012f620 00000000
0012f624 0000000a
0012f628 cccccccc
0012f62c cccccccc
0012f630 cccccccc
0012f634 cccccccc
0012f638 cccccccc
0012f63c cccccccc
0012f640 00000001
0012f644 00401050 WatchProc!ILT+75(?OnBtnDel2CWatchProcDlgIAEXXZ)
0012f648 0012f6a0
0012f64c 5f437b2b MFC42D!CCmdTarget::OnCmdMsg+0x274
0012f650 0012fde4
0012f654 000003ee
0012f658 00000000
0012f65c 00401050 WatchProc!ILT+75(?OnBtnDel2CWatchProcDlgIAEXXZ)
0012f660 000000003. 如果我的目标机(就是运行程序的机器是windows 2003)生成的dump文件,可以在我的主机(就是编译的机器xp)上进行分析不?需要做什么不?
但是用堆栈的几个命令都不能看到清晰的信息,和对应的文件行数之类,达不到理想效果,最好的是kd命令,还可看到OnBtnDel2()
0:000> kd
0012f614 00000000
0012f618 0012f800
0012f61c 00143be0
0012f620 00000000
0012f624 0000000a
0012f628 cccccccc
0012f62c cccccccc
0012f630 cccccccc
0012f634 cccccccc
0012f638 cccccccc
0012f63c cccccccc
0012f640 00000001
0012f644 00401050 WatchProc!ILT+75(?OnBtnDel2CWatchProcDlgIAEXXZ)
0012f648 0012f6a0
0012f64c 5f437b2b MFC42D!CCmdTarget::OnCmdMsg+0x274
0012f650 0012fde4
0012f654 000003ee
0012f658 00000000
0012f65c 00401050 WatchProc!ILT+75(?OnBtnDel2CWatchProcDlgIAEXXZ)
0012f660 000000003. 如果我的目标机(就是运行程序的机器是windows 2003)生成的dump文件,可以在我的主机(就是编译的机器xp)上进行分析不?需要做什么不?
解决方案 »
- CString字符串空格删除问题
- vc中PlaySound放音乐如何?
- VC雕虫小技集(四)
- 在对话框独立使用CRecordSet时,如何将编辑框更改后的数值保存到数据库记录中,界面关了重新打开后又可显示在编辑框中
- 通过word的ole对象,如何不用保存为临时文件,就直接读出文档的二进制流呢?
- 关于CTreeCtrl和CListCtrl
- ××××关于VC++技术内幕第四版十章中CDIB类的问题×××××
- 请教在VC中怎样实现调用SYBASE的存储过程?
- 紧急求助:测试VC程序,需要构建广域网环境,只能使用软路由的方式,win2000路由服务或其它软件实现!
- 多媒体高手请进(MPEG)可以再加分(150)
- 用EOF 还是用adoEOF?
- 远程FTP下载问题
2、首先设置 符号路径Symbol Files Path,然后设置源文件路径Source Files Path,最后打开dmp文件就可以了然后就可以analyze能直接看到源代码哪一行出错,调用堆栈,错误帧等等
1. 环境变量,_NT_SYMBOL_PATH也设置成D:\WINDOWS\Symbols,结果还是说
Your debugger is not using the correct symbols2. 符号路径Symbol Files Path,然后设置源文件路径Source Files Path都设置了,analyze后
0:000> analyze
*** WARNING: Unable to verify checksum for WatchProc.exe
*** ERROR: Symbol file could not be found. Defaulted to export symbols for MSVCRTD.DLL -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for uxtheme.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for comctl32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for MFCO42D.DLL -
*** ERROR: Module load completed but symbols could not be loaded for mfc42loc.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols for lpk.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for MSCTFIME.IME -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for usp10.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for MSCTF.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for imm32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ole32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for psapi.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for apphelp.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for comctl32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for version.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for msvcrt.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for user32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for advapi32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for rpcrt4.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for gdi32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for shlwapi.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for secur32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols for shell32.dll -
SRV*D:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols加载完符号文件再analyze
Symbol search path is: D:\WINDOWS\Symbols
lkd> !sym noisy
noisy mode - symbol prompts on
lkd> !lmi nt
Loaded Module Info: [nt]
Module: ntkrnlpa
Base Address: 804d8000
Image Name: ntkrnlpa.exe
Machine Type: 332 (I386)
Time Stamp: 45e53f9c Wed Feb 28 16:38:52 2007
Size: 1f6400
CheckSum: 1facf5
Characteristics: 12e
Debug Data Dirs: Type Size VA Pointer
CODEVIEW 25, 9540, 9540 RSDS - GUID: {F612363D-B38C-423C-B085-59DDBCA9F2F7}
Age: 1, Pdb: ntkrnlpa.pdb
Image Type: MEMORY - Image read successfully from loaded memory.
Symbol Type: EXPORT - PDB not found
Load Report: export symbols
lkd> .reload /f nt
SYMSRV: WinInet Interface using proxy server: 202.117.54.197:8080
SYMSRV: ntkrnlpa.pdb from http://msdl.microsoft.com/download/symbols: 394365 bytes copied
DBGHELP: nt - public symbols
D:\WINDOWS\Symbols\ntkrnlpa.pdb\F612363DB38C423CB08559DDBCA9F2F71\ntkrnlpa.pdb
.sympath
.chain
看看路径对不对
然后输入
!sym noisy
!lmi nt
.reload /f nt