精华区 [关闭][返回]

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

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

删除符号表
每次你转换你的源代码,Symbol Loader都会以符号表的形式建立.NMS符号文件。
当你载入模块的时候,Symbol Loader将表存在内存中直到你删除表或者重启计算
机。
要删除符号表有以下步骤:
1. 在EDIT(编辑)菜单里选择SYMBOL TABLE(符号表)。
2. 点击你想要删除的表的ID然后单击Remove(删除)按纽。
提示:使用标题栏来按照表的ID、表名、类型、SYM=、NMS大小和版本排序。符号
列表是以升序排列的。

在DOS命令行里使用Symbol Loader
Symbol Loader(LOADER32.EXE)支持命令行界面,这样可以使你在DOS提示符下
使用Symbol Loader的许多特性而不必转到图形界面中去。因此,你能使它自动完
成许多通用任务。
在DOS提示符下使用Symbol Loader之前,用Symbol Loader的图形界面来为你想载
入的每一个模块设置缺省路径以及指定转换和调试设置。Symbol Loader为每一个
文件都保存这些设置,并将在你在DOS提示符下用Loader 32载入或转换文件时使
用它们。参考前面的模块设置一节。
要运行LOADER32.EXE,在包含它的路径下或在SoftICE所指定的搜索路径下启动它

命令语法:
LOADER32.EXE有以下语法:
LOADER32 [[option(s)]file-name]
File-name是你想要转换或载入的文件。选项如下:
选项                    定义
/EXPORTS 装载文件的导出。

/LOAD 将模块转换成.NMS文件--如果文件不存在的话--并将其载入到SoftIC
E中。如果你曾经为这个文件设置了转换和调试设置,LOADER32.EXE使用这些设置
,如果没有设置的话,LOADER32.EXE按模块类型使用缺省设置。

/LOGFILE 将SoftICE历史记录保存到一个日志文件中。

/NOPROMPT 指示LOADER32.EXE在没找到源文件时不作提醒。

/PACKAGE 将源码和符号信息保存在.NMS文件中。

/TRANSLATE 按照你最后一次转换文件时的设置将模块转换为.NMS文件,如果
没有设置,LOADER32.EXE按模块类型使用缺省设置。
------------------------------------------  -
下面是指定语法命令时的一些策略:
选项不是必须的。如果你仅指定了文件名而不带选项,LOADER32.EXE启动图形界
面并打开这个文件。
同时指定 /TRANSLATE 和 /LOAD 使LOADER32.EXE在载入前先转换模块。
在使用 /EXPORTS 或 /LOGFILE 时不要使用其它选项。

注意:如果你指定了一个选项,LOADER32.EXE并不显示Symbol Loader的图形界面
除非有错误发生。如果LOADER32.EXE遇到错误,它在Symbol Loader窗口显示它。


使用Symbol Loader的命令行工具
NMSYM是一个工具程序,可以使你建立一个批处理过程来完成对SoftICE的转换和
符号信息的载入,或者是其它使用NM32(TM)符号表文件格式的程序。NMSYM提供
了一系列的命令行选项来模拟Symbol Loader的特性,它可完成以下功能:
  对独立的模块进行转换并载入符号信息
  载入或卸载成组的符号表和模块输出
  将SoftICE的历史缓存保存成文件
  获得产品版本信息和帮助

下面是每个功能的选项列表:
功能           NMSYM选项
对独立的模块进行转换        /TRANSLATE 或 /TRANS
并载入符号信息 /LOAD
/SOURCE
/ARGS
/OUTPUT 或 /OUT
/PROMPT
载入或卸载成组的符号 /SYMLOAD 或 /SYM
表和模块输出 /EXPORTS 或 /EXP
/UNLOAD

将SoftICE的历史缓存 /LOGFILE 或 /LOG
保存成文件

获得产品版本信息和帮 /VERSION 或 /VER
助 /HELP 或 /H
-------------------------------------------- -

  NMSYM命令行的语法
NMSYM.EXE有以下的语法:
     NMSYM [option(s)]<module-name>
其中:
     选项是由反斜杠(/)后面跟着选项名称来指定。
     Module-name是你想要转换或载入的模块名。

下面是一个有效的命令行示例:
NMSYM /TRANSLATE C:\MYPROJ\MYPROJECT.EXE

  使用NMSYM来转换符号信息
许多选项包含有附加的开关和指定的文件列表指令。选项指令修改某一方面的选
项,文件列表指令指定对一组文件的操作。
选项指令的语法如下:
/option:<option-specifier>[,<option-specifier>]
选项后跟着一个冒号(:),然后是以逗号分隔指令列表。下面是使用/TRANSLA
TE选项和SOURCE以及PACKAGE指令使NMSYM转换源文件和符号文件,然后将源文件
写入NMS符号表中的例子。
/TRANSLATE:SOURCE,PACKAGE
文件指令的语法如下:
/option:<filename|pathname>[;<filename|pathname>]
下面是使用/SOURCE选项和三个路径列表指令。NMSYM转换和载入时在路径列表指
令中搜索源文件。
/SOURCE:C:\myprog\i386;c:\myproj\include;c:\msdev\include;

  使用NMSYM来装入模块和符号信息
NMSYM的主要目的是将编译器所生成的模块调试信息转换成NM32的符号格式,然后
将信息放入.NMS文件中。要完成这些,在NMSYM命令行中使用以下的选项和参数:

1. 使用/TRANSLATE选项指定你想生成的符号信息类型。
2. 使用/SOURCE选项指定NMSYM搜索源文件的路径。
3. 如果你想为.NMS文件指定一个可选的文件名,使用/OUTPUT选项。
4. 指定你想要转换的模块名。
NMSYM /TRANSLATE C:\MYPROJ\MYPROJECT.EXE
下面的部分介绍了转换选项.使用这些选项来转换独立模块的符号信息.

/TRANSLATE:<tranlsation-specifier-list>
/TRANSLATE选项让你指定你希望产生的的符号信息类型,以及源代码是否打包进符
号文件里去.其它选项包括强制转换--甚至是符号文件已经即时更新了。
/TRANSLATE选项有不同的选项指令,包括符号信息、打包源码和一个通用的开关
,ALWAYS。下面解释了这些指令。
符号信息指令
下面的选项列表是符号信息指令,用来决定被转换的符号信息。只能使用一个符
号信息指令。如果你不指定,NMSYM缺省为SOURCE。
符号信息指令  描述
PUBLICS 仅包括公有(全局)符号。不包括静态函数和变量。这个选项与在
MAP文件里的符号信息相似。它产生最小的符号表。

TYPEINFO 仅包括类型信息。不包括符号信息。在你只有高级类型信息而没有
源代码和调试信息时用它。

SYMBOLS 包括所有的符号和类型信息。但不包括源码和行数信息。这个指令
产生比较小的符号表。

SOURCE 这是缺省的转换类型。所有的符号、类型和源码信息都有。
注意:源码信息不是指源文件本身。它是关于源文件的信息,如文件名和行数信
息等。

源码打包指令
源码打包指令决定NMSYM是否将源码附加到.NMS符号文件里。缺省下,NMSYM做以
下工作:
  将设备驱动程序模块的源码打包到.NMS文件中。因为它们是在操作系统完全初
始化之前被载入的。
  不将在操作系统启动之后运行的程序源码打包。
使用下面的源码打包指令覆盖缺省设置:
源码打包指令              描述
PACKAGE 在.NMS符号文件中包含源码
NOPACKAGE 在.NMS符号文件中不包含源码
注意:如果你将源码打包到.NMS文件中,任何访问这个符号表的人都可获得你的
代码。

ALWAYS指令
缺省时,如果当前符号信息存在的话NMSYM不进行转换。使用ALWAYS指令强迫NMS
YM进行转换而不考虑符号信息的状态。
使用/TRANSLATE选项的例子
  下面的例子指定了一个模块名而不使用/TRANSLATE选项。因此,转换使用缺省
的模块类型选项完成。
NMSYM myproj.exe
注意:对于Win32应用程序和DLLs而言,缺省是:
/TRANSLATE:SOURCE,NOPACKAGE
对于驱动程序模块,缺省是:
/TRANSLATE:SOURCE;PACKAGE
下面的例子转换VxD的符号信息。它使用了SYMBOLS指令来排除关于源码的信息和
/NOPACKAGE指令阻止NMSYM打包源文件。
NMSYM /TRANSLATE:SYMBOLS,NOPACKAGE C:\myvxd.vxd
下面的例子使用了模块类型的缺省设置并用/ALWAYS指令迫使NMSYM将符号信息转
换成.NMS符号文件。
NMSYM /TRANSLATE:ALWAYS myproj.exe

-------------------------------------------
哎呀...本来今天是想把第四章全部译完的...可惜和同学聊了很久...所以耽误了

今天我连汇编语言也没有看...已经落下四天的进程了...呜,很麻烦啊!
总是这样啊~~~~~~~~~~~~~


---------------------
附:
    我的电子信箱是:     [email protected]

    以前的使用手册可以在网易精华区的《软件使用》栏目里找到...也可以到:

                        Sanvador.yeah.net
站点寻找...呵呵,我的主页很差劲哦!不过过些天我一定改改...希望你可以得
到你需要的东西。
    有什么问题,大家一起讨论讨论吧。

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

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

[关闭][返回]