如何使用符号文件?

几乎每个命令都会直接或者间接地使用符号信息. 进行符号检查的命令却不多.

 

查看符号的命令是x, 这个字符表示"查看符号". 语法如下所示:

0.00>x [options] module!symbols

 

module和symbols都可以包含通配符. 在调试陌生代码时, 通配符是一种功能强大的工具, 因为它使我们在阅读代码之前能够猜测函数的名字或者全局变量.

image

其中, 带有_imp前缀的函数说明了该模块是引入函数的模块. 不带_imp的函数是实现该函数的模块.

 

当调试器使用公有符号文件时, 这些符号检查命令是不能发挥出全部功能的.

 

另一个可以充分利用符号的命令是ln, ln表示list near. 该命令将尽可能地给出特定地址相关的符号信息. 如果没有符号能够精确地与这个地址匹配的话, 调试器将通过指针算法对靠近这个地址的符号进行运算, 并返回运算结果的符号以及输入的地址与该符号的偏移量.

image

 

当你正在查看某部分数据却不知道这部分数据所表示的内容的时候, 这个命令能够带来极大的帮助. 如果正在分析的地址属于栈的一部分, 那么你很可能发现来自调用栈的代码序列. ln可以帮助你识别它们. 如果正在查看一个堆块, 那么很可能发现一些最初对象的碎片, 这将帮助你找到这块堆块的用途.

 

摘自<<Advanced Windows Debugging>>

posted on   中道学友  阅读(1028)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2009-12-27 WSS3.0知识问答
2009-12-27 如何查看以二进制形式存储在SQL Server中的信息?
2009-12-27 WSS3.0中文档类型与图标的对应关系
2009-12-27 WSS3.0安装或使用的系统服务

导航

< 2010年12月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示