阅读:2941回复:6
还是用WINDBG 调试驱动的问题,关于符号文件.pdb
我的驱动是用DS写的,编译的时候生成的符号文件有.nms文件还有个.pdb文件,看了WINDBG的书,说WINDBG的符号文件有.dbg和.pdb 格式的,那么我用DS生成的那个 .pdb文件就是符号文件了。但为什么我把WINDBG设置好后,打开崩溃转储文件.bmp文件后却提示找不到 Image file,意思是说符号文件不队,到底怎么回事??
|
|
|
沙发#
发布于:2004-02-26 08:20
上次偶说的不对,Symbol文件的格式取决于链接器,Ver<5.0的Linker只能生成.dbg,Ver=5.0的Linker可以生成.dbg和.pdb,Ver=6.0的Linker则只生成.pdb。
Win2000里会先搜索.dbg,如果从.dbg文件里链接不到相应的.pdb,会重新搜索.pdb的,因此只要有.pdb的符号就可以了。 |
|
板凳#
发布于:2004-02-26 11:26
changjt那个帖子给你分了!
再次感谢你的帮助! 但在设置WINDBG上我还不成功: 1.设置符号文件路径: 生成DMP文件的机器系统是sp4 ,所以我在我机子上先安装win2000的符号文件(从微软下载),然后安装win2000,sp4符号文件,安装在同一个目录里。然后安装了最新版本的WINDBG。在WINDBG的符号文件路径设置选项里指定系统符号文件路径和我驱动符号文件.pdb文件路径。 这个是没什么问题吧? 2。源文件路径: 这个更应当没什么问题,就是我源程序。c,。h文件的路径。 3。Image文件路径: 应当是我驱动.sys文件的路径,和我的驱动符号文件是同一个路径。 这个也没问题吧? 然后我把最小内存转储改成了完全内存转储。 到这里准备工作应当是做好了,是吗? 下面我做了个实验,修改自己的驱动,故意制造一个蓝屏,蓝屏时间到100秒后,我RESET 我电脑后,用WINDBB打开了刚才生成的memory.dmp文件,但显示该文件被损坏,而且提示windbg的有些扩展命令也不能使用,为什么有这么奇怪的现象? |
|
|
地板#
发布于:2004-02-26 15:35
Image文件指的是DUMP时内存中所加载的可执行文件映象,如果做了完全内存转储,这一设置就不必要了。
应该是没问题了,只要保证可用磁盘空间大于系统内存容量就可以了,难道你改的那么巧,恰好把执行DUMP操作所需的那段核心代码给干掉了,不会吧 |
|
地下室#
发布于:2004-02-26 15:39
Image文件指的是DUMP时内存中所加载的可执行文件映象,如果做了完全内存转储,这一设置就不必要了。 不太明白你的意思: 难道你改的那么巧,恰好把执行DUMP操作所需的那段核心代码给干掉了,不会吧 怎么理解这句话! |
|
|
5楼#
发布于:2004-02-27 08:24
我的意思只是说不是所有的核心栈崩溃都可以做内存转储,毕竟转储时还要实现一个写盘操作,需要文件系统支持,微软网站上有说明。
|
|
6楼#
发布于:2004-02-27 09:30
我的意思只是说不是所有的核心栈崩溃都可以做内存转储,毕竟转储时还要实现一个写盘操作,需要文件系统支持,微软网站上有说明。 谢谢! 我去看看! |
|
|