slwqw
驱动大牛
驱动大牛
  • 注册日期2002-07-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望197点
  • 贡献值0点
  • 好评度147点
  • 原创分0分
  • 专家分0分
阅读:3072回复:14

使用Passthru碰到蓝屏时如何知道是哪一行代码引起的?告诉你一个基本的方法。

楼主#
更多 发布于:2003-05-15 22:10
使用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自动把光标移动到对应的代码行,估计那行代码就是引起蓝屏的代码了,剩下的就是检查你的源代码了。

===================

同时欢迎老大门指点,提供别的更方便的方法.......
freducn2002
驱动小牛
驱动小牛
  • 注册日期2002-06-26
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望29点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-05-16 08:59
我试一下,不过先谢谢你!
wangsj47
驱动牛犊
驱动牛犊
  • 注册日期2003-04-11
  • 最后登录2012-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-16 09:15
GOOD!
~~~~~~~~~~~~~~~~~~~~~~~~~~~ 初来乍道,一头雾水~~~~ E-Mail:wangsj47@sina.com
robin_wxg
驱动小牛
驱动小牛
  • 注册日期2003-02-10
  • 最后登录2009-09-21
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-16 11:44
更进一步!
longfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2011-08-10
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-21 16:37
其实还有更好的方法
softice弹出后
ws
你可以看到当前堆栈的所有信息
双击相关的行,你就可以看到对应的代码
如果你的sym文件已经加载,你就可以看到c代码了
baoyibao99
禁止发言
禁止发言
  • 注册日期2003-05-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分894分
  • 威望8415点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-21 22:27
用户被禁言,该主题自动屏蔽!
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-22 09:41
在build.bat
的checked模式的优化.加上/OI /OD
放弃瘟草,现吃李草
conglin
驱动牛犊
驱动牛犊
  • 注册日期2001-12-12
  • 最后登录2003-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-22 11:15
通过DUMP调试不行吗?
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-22 18:04
好贴.建议做精华
==寂寞骆驼==
lilio
驱动牛犊
驱动牛犊
  • 注册日期2003-02-24
  • 最后登录2006-12-16
  • 粉丝0
  • 关注0
  • 积分110分
  • 威望13点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-22 18:45
挺有用的,但我的softice老无法加断点,经常使机子变的死慢死慢,所以都不大用的说.
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-22 19:59
楼上的你是不是代码和SYM是不对应的,SYM没有更新啊?
放弃瘟草,现吃李草
melodylux
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2010-07-19
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-08-04 19:43
上了一课,呵呵,^_^!
struct
驱动小牛
驱动小牛
  • 注册日期2003-08-21
  • 最后登录2013-12-05
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望50点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-10-15 18:22
好东东
明天的事明天再说
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-10-15 21:50
我怎么也显示不了C代码,是不是我的softice有问题呀?

敲个EC命令看看
放弃瘟草,现吃李草
x_j_ting
驱动牛犊
驱动牛犊
  • 注册日期2003-03-30
  • 最后登录2005-06-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-11-01 10:17
这是我找了20多年的东西。。。呵呵
游客

返回顶部