如何使用符号文件?
2010-12-27 16:30
197 查看
几乎每个命令都会直接或者间接地使用符号信息. 进行符号检查的命令却不多.
查看符号的命令是x, 这个字符表示"查看符号". 语法如下所示:
module和symbols都可以包含通配符. 在调试陌生代码时, 通配符是一种功能强大的工具, 因为它使我们在阅读代码之前能够猜测函数的名字或者全局变量.
其中, 带有_imp前缀的函数说明了该模块是引入函数的模块. 不带_imp的函数是实现该函数的模块.
当调试器使用公有符号文件时, 这些符号检查命令是不能发挥出全部功能的.
另一个可以充分利用符号的命令是ln, ln表示list near. 该命令将尽可能地给出特定地址相关的符号信息. 如果没有符号能够精确地与这个地址匹配的话, 调试器将通过指针算法对靠近这个地址的符号进行运算, 并返回运算结果的符号以及输入的地址与该符号的偏移量.
当你正在查看某部分数据却不知道这部分数据所表示的内容的时候, 这个命令能够带来极大的帮助. 如果正在分析的地址属于栈的一部分, 那么你很可能发现来自调用栈的代码序列. ln可以帮助你识别它们. 如果正在查看一个堆块, 那么很可能发现一些最初对象的碎片, 这将帮助你找到这块堆块的用途.
摘自<<Advanced Windows Debugging>>
查看符号的命令是x, 这个字符表示"查看符号". 语法如下所示:
0.00>x [options] module!symbols
module和symbols都可以包含通配符. 在调试陌生代码时, 通配符是一种功能强大的工具, 因为它使我们在阅读代码之前能够猜测函数的名字或者全局变量.
其中, 带有_imp前缀的函数说明了该模块是引入函数的模块. 不带_imp的函数是实现该函数的模块.
当调试器使用公有符号文件时, 这些符号检查命令是不能发挥出全部功能的.
另一个可以充分利用符号的命令是ln, ln表示list near. 该命令将尽可能地给出特定地址相关的符号信息. 如果没有符号能够精确地与这个地址匹配的话, 调试器将通过指针算法对靠近这个地址的符号进行运算, 并返回运算结果的符号以及输入的地址与该符号的偏移量.
当你正在查看某部分数据却不知道这部分数据所表示的内容的时候, 这个命令能够带来极大的帮助. 如果正在分析的地址属于栈的一部分, 那么你很可能发现来自调用栈的代码序列. ln可以帮助你识别它们. 如果正在查看一个堆块, 那么很可能发现一些最初对象的碎片, 这将帮助你找到这块堆块的用途.
摘自<<Advanced Windows Debugging>>
相关文章推荐
- 如何使用符号文件?
- 使用tar命令打包文件时,如何将符号链接文件替换为源文件
- 如何使用DISM命令整合驱动文件到win7x64系统ISO镜像中
- 使用xib文件和自定义类来实现自定义View(如何利用xib封装一个View)
- 移植库需要注意事项(与移植库生成的文件如何使用)
- 如何在C#中使用内嵌资源文件(转载学习)
- 如何使用a标签下载文件
- 如何使用资源文件
- 博客园使用攻略之如何添加自己的js文件
- 如何使用Git客户端图形化进行文件(代码)上传
- 如何使用Qt Creator生成带图标的exe文件
- 如何使用FileCreate建立一个文件
- 转载:在DELPHI中如何使用*.dcu文件
- 如何使用 Convert.exe 将分区转换为 NTFS 文件系统
- 如何使用SQL 2000的DTS自动从FTP服务器下载文件
- 如何使用window自带的远程桌面连接进行远程文件的上传和下载
- 使用vi编辑文件,出现“*** is busy”,如何处理?
- 如何使用Dojo提交上传文件请求
- 如何使用文件的fseek函数对文件指针进行操作
- 如何使用c语言递归地列出linux系统的所有目录和文件