1. 首先设置符号表路径
在系统环境变量添加一个 _NT_SYMBOL_PATH 值为srv*d:\symbols*http://msdl.microsoft.com/download/symbols
这样IDA, windbg, vs 都会自动到该目录加载符号表.
对于这个路径d:\symbols, 可以自定义任何位置, 最好不要用离线符号表,因为你根本就找不到对应的系统版本,而且
对于win10等仍然在更新的系统,符号表过一段时间就会有所变化,到时又要重新下载一个多G的符号表,反而麻烦.
2.所有不同版本操作系统的符号可以放在同一目录d:\symbols下.
为什么?
本人经过测试,同一个文件的符号表会在该目标目录下生成以hash值命名的不同文件夹,例如ntkrnlmp.pdb:
对于这2个文件夹,一个是本机win10的,还有一个是win7 64位系统的, 所以如果有xp的,win8的, 甚至不同更新版本的win10的这个ntkrnlmp.pdb
符号表,会同时有多个文件夹对应不同的版本,所以不需要担心冲突.
3.设置好符号表路径还是出错
解决方案:
(1)首先网络能通, 直接在浏览器访问http://msdl.microsoft.com/download/symbols 看能不能打开
(2) 对于被调试目标,例如xp和win7 64位系统, 应该使用不同版本的windbg, 例如xp可以使用6.X版本的32位的windbg来进行内核调试
而win7 64位最好使用64位的 10.X版本的windbg调试. 否则 如果用32位的6.x版本调试win7 64位就会出现 在存储符号表的目录中下载了符号表
但是只有1KB大小,显然是错的, 当时这个问题纠结了我很久, 后来换了64位的 10.X版本的windbg 设置好符号表路径后 自动解决问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!