精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 软件使用>>★软件课堂★>>Soft-ice使用手册>>Soft-ice使用手册 四章二回9

主题:Soft-ice使用手册 四章二回9
发信人: sanvador()
整理人: webfan(2000-08-08 20:49:39), 站内信件


  准备调试程序
下面是调试操作系统启动之后的模块和组件的一般步骤。模块可以是EXEs、DLLs
、动态VxDs和OCXs。本章后面详细解释了如何完成这些步骤。
1. 构造模块的调试信息。
2. 载入SoftICE。
3. 启动Symbol Loader。
4. 点击OPEN按纽打开要调试的模块。
5. 使用Symbol Loader将调试信息转换成.NMS符号文件并装入到SoftICE中。

  准备调试设备驱动程序和VxDs
下面是调试操作系统完全初始化之前所载入的设备驱动程序或静态VxDs的一般步
骤。本章后面详细解释了如何完成这些步骤。
1. 构造程序的调试信息。
2. 载入SoftICE。
3. 启动Symbol Loader。
4. 单击OPEN按纽打开要调试的模块。
5. 在Symbol Loader转换设置里选择PACKAGE SOURCE WITH SYMBOL TABLE(打包
源文件和符号表)设定。
6. 单击TRANSLATE(转换)按纽建立新的.NMS符号文件。
7. 修改SoftICE初始化设置以便在启动时预装入VxDs或设备驱动程序的调试信息

8. 重启计算机。

手工装入SoftICE
在下列配置中SoftICE不会自动装载:
  启动Windows 95之前没有在AUTOEXEC.BAT中运行WINICE.EXE。
  在Windows NT下选择了手动启动模式(Manual Statrup)。
如果你使用了这些配置,你需要手工载入SoftICE。下面介绍了在Windows 95和W
indows NT下如何手工装载SoftICE。
  装入SoftICE for Windows 95
要在Windows 95下载入SoftICE,先从DSO命令行中载入它。SoftICE在它本身初始
化之后自动运行Windows 95。使用如下的命令语法:
命令语法:
WINICE [/HST n][/TRA n][/SYM n][/M]
       [/LOAD[x] name]
       [/EXP name][drive:\path\WIN.COM [Windows-command-line]]
------------------------------------------------ -
下面是选项的解释:
选项          定义
/EXP name      通过指定Windows应用程序名或DLL文件名将其加入到SoftICE的
导出列表里。它使你可以象征性的访问这些导出的符号。
/HST n        增加命令记忆缓存的大小。N是以K为单位表示的十进制数值。缺
省是8KB。
/LOAD name[x] 装入源码和符号。Name包括完整的路径名和文件名。文件可以是
VxD、DOS驻留程序、DOS可定位设备驱动程序、DOS程序、Windows驱动程序、Win
dwos DLL以及带有符号的Windows程序。如果x存在,则不装入源码。
/M            使SoftICE的输出直接送到第二台单色显示器上,忽略所有初始化
VGA的任务。
/SYM n        分配符号表。N是以K为单位的十进制数值。缺省为0KB。
/TRA n        增加后台历史记录跟踪缓存大大小。N是以K为单位的十进制数值
。缺省为8KB。
------------------------------------------------ -
提示:你可以在初始化字串中指定这些开关。参考修改SoftICE初始化设置一节。


  装入SoftICE for Windows NT
在Windows NT下装入SoftICE,要做以下两步:
1.选择START SOFTICE。
2.输入命令:NET START NTICE
注意:一旦装入SoftICE,在重启计算机之前不能卸载它。

构造带有调试信息的程序
下面编译器的相关信息仅做参考。查阅你的编译器或汇编文档以得到更多关于构
造带有调试信息的程序的资料。
编译器                  通用调试信息
Borland C++ 4.5/5.0     要生成Borland的标准调试信息:
                         编译时带 /v 
                         连接时带 /v

Delphi 2.0              要生成Borland的标准调试信息:
                        编译时带如下选项:
                         -V   在可执行文件中包含调试信息
                         -$W+ 建立堆栈结构
                         -$D+ 建立调试信息
                         -$L+ 建立局部调试符号
                         -$O- 禁止优化

MASM 6.11              要生成Codeview类型的调试信息:
                        汇编时带 /Zi /COFF
                        使用Microsoft的32位LINK.EXE连接,带
                             /DEBUG /DEBUGTYPE:CV /PDB:NONE

Microsoft Visual C++       要生成程序数据库调试信息:
2.x、4.0、4.1、4.2、5.0      编译带有数据库调试信息的程序,使用命令行

                                 开关 /Zi
                             使用Microsoft的连接器:
                                 带 /DEBUG /DEBUGTYPE:CV

注意:VxDs需要你生成PDB调试信息。
要生成Codeview类型的调试信息:
编译时生成与C7兼容的调试信息,使用 /Z7 开关。
用微软连接器连接时带 /DEBUG /DEBUGTYPE:CV /PDB:NONE
(Codeview是微软的一个排错工具,和Borland公司的TASM工具一样。不过我从不
用Codeview,因为...没有TASM好啊!)

注意:如果你使用标准的Windows NT DDK来开发程序,使用下面的环境变量:
NTDEBUG = ntsd 和 NTDEBUGTYPE = windbg

Symantec C++ 7.2           Symantec的编译器缺省时生成Codeview类型的调试
信息。下      
                           面参数是生成调试信息所需要的:
                              编译时带 -g
                                其它如 -gh、-gf、-gg 也可用
                              连接时带 /CO

Watcom C++ 10.5           要生成全Codeview类型的调试信息:
                              编译时带 -hc -d3
                              连接时选 DEBUG CODEVIEW OPTION CVPACK
---------------------------------------------- -

使用Symbol Loader转换和载入文件
在SoftICE可以调试你的程序、.DLL或驱动程序之前,你需要为每一个你要调试的
模块建立一个符号文件,然后将文件装入SoftICE。Symbol Loader使这个过程快
速又容易。Symbol Loader让你区分你想载入的模块,自动建立相应的符号文件。
最后,Symbol Loader装入在调试信息中引用的所有文件。要限制Symbol Loader
装入的源文件,参考后面的指定程序的 源文件。
要使用Symbol Loader装入模块,有以下步骤:
1. 启动Symbol Loader。
2. 单击OPEN按纽以打开文件
3. 在打开对话框中选择你想载入的文件。
4. 如果你打开了一个.SYM文件,Symbol Loader显示一个对话框问你这个文件是
不是一个32位文件。是,选YES;不是,选NO。
因为.SYM文件格式的限制,SoftICE不能判定.SYM文件是16位的还是32位的。

提示:你打开一个文件后,它就被加入到文件菜单中最近打开文件列表的底部。
使用这个列表可快速重新打开一个文件。
5. 单击LOAD按纽装入打开了的文件。

Symbol Loader将程序的调试信息转换位.NMS符号文件。然后,Symbol Loader将
符号文件和源文件都装入到SoftICE中。如果你装入一个.EXE文件,SoftICE启动
程序并在它所遇到的第一个主模块(WinMain、Main、DllMain)上设置一个断点


Symbol Loader所载入的信息依赖于转换和调试设置。参考后面修改模块设置一节
以得到更多关于修改转换和调试设置的信息。

--------------------------------------------------
这些天烦恼的事情挺多的,我始终不能按计划完成任务。真的很头痛!

每天翻译的数量也减少了...或者说速度下降了。做了这么些以后,其实应该是有
所加快才对..不知是怎么搞的。也许后面这些我也不是很懂,要寻找合适的词语
和句子,又不能理解错误,花了我不少的时间吧!

上网也没了劲头...唉,我是不是病了啊?

Sanvador.KT

--
无意苦争春
一任群芳妒
零落成泥碾作尘
依旧香如故

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.137.191.3]

[关闭][返回]