阅读:3063回复:14
使用Passthru碰到蓝屏时如何知道是哪一行代码引起的?告诉你一个基本的方法。
使用Passthru碰到蓝屏时如何知道是哪一行代码引起的?告诉你一个基本的方法。
一、首先生成.SYM文件。 1、使用Check Build编译生成.SYS文件。 2、启动Symbol Loader。 3、选File\\Open,打开那个.SYS文件。 4、选Module\\Settings..., [1]、在Generl页,把Source file search和Default source file指向你的源代码目录。 [2]、在Translation页,选中Symbols and source code和Package Source and symbol table 4、选Module\\Translate,生成.SYM文件。 二、调试方式 [1]、动态调试(比如准备安装Passthru等),直接Module\\Load... [2]、静态调试,选Edit\\SOFTICE Initialization Settings...,选Symbols,选刚才生成的.SYM文件。 注:1)、SoftICE 2.7有BUG,更改设置之后必须运行ICEPACK.EXE(在安装目录下面),否则设置不生效。 2)、如果以后你更改了源代码并重新生成了.SYM文件,你必须再次运行ICEPACK.EXE,否则SoftICE仍然使用旧版本的源代码。这个很让人不可思议,使用notepad查看那个新的.SYM文件时,源代码的确是新的,但是使用file命令时,出现的源代码却是旧的,运行ICEPACK.EXE后才使用新的源代码。 三、出现蓝屏时 SoftICE弹出后,执行stack命令,一般都会有如下输出: 80432424 NDIS!PAGE.... ...................... F9034324 Passthru!.text + 00E4 ............. 现在再打命令 U Passthru!.text + 00E4 这时候SoftICE自动把光标移动到对应的代码行,估计那行代码就是引起蓝屏的代码了,剩下的就是检查你的源代码了。 =================== 同时欢迎老大门指点,提供别的更方便的方法....... |
|
沙发#
发布于:2003-05-16 08:59
我试一下,不过先谢谢你!
|
|
板凳#
发布于:2003-05-16 09:15
GOOD!
|
|
|
地板#
发布于:2003-05-16 11:44
更进一步!
|
|
地下室#
发布于:2003-07-21 16:37
其实还有更好的方法
softice弹出后 ws 你可以看到当前堆栈的所有信息 双击相关的行,你就可以看到对应的代码 如果你的sym文件已经加载,你就可以看到c代码了 |
|
5楼#
发布于:2003-07-21 22:27
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2003-07-22 09:41
在build.bat
的checked模式的优化.加上/OI /OD |
|
|
7楼#
发布于:2003-07-22 11:15
通过DUMP调试不行吗?
|
|
8楼#
发布于:2003-07-22 18:04
好贴.建议做精华
|
|
|
9楼#
发布于:2003-07-22 18:45
挺有用的,但我的softice老无法加断点,经常使机子变的死慢死慢,所以都不大用的说.
|
|
10楼#
发布于:2003-07-22 19:59
楼上的你是不是代码和SYM是不对应的,SYM没有更新啊?
|
|
|
11楼#
发布于:2003-08-04 19:43
上了一课,呵呵,^_^!
|
|
12楼#
发布于:2003-10-15 18:22
好东东
|
|
|
13楼#
发布于:2003-10-15 21:50
我怎么也显示不了C代码,是不是我的softice有问题呀? 敲个EC命令看看 |
|
|
14楼#
发布于:2003-11-01 10:17
这是我找了20多年的东西。。。呵呵
|
|