首页
社区
课程
招聘
[分享]WinDbg 10.0.xxx 版本 - Registers are not yet known 错误导致寄存器窗口无法显示内容
发表于: 2017-4-23 05:38 8122

[分享]WinDbg 10.0.xxx 版本 - Registers are not yet known 错误导致寄存器窗口无法显示内容

2017-4-23 05:38
8122

我是用过两款WinDbg10.0.xxx版本的调试器,10.0.10586 和 10.0.14321。

这两个调试器在内核调试模式下,寄存器无法正常显示且提示Registers art not yet known错误。

后来我在网上找到一个解决该问题的开源扩展DLL。

原文网址:http://stackoverflow.com/questions/35961246/windbg-not-showing-register-values

大致意思是:这是一个很蠢的Bug

不过可惜的是我怎么都编译不过它的源码,只能直接使用他给的DLL。

然而,我觉得这个扩展DLL用起来不方便,每次都需要我手动在WinDbg的命令行输入!WingDbg.regfix来修复寄存器无法显示的Bug。

于是乎,我对这个扩展DLL打了补丁,使它每次在WinDbg加载扩展DLL的时候(当WinDbg通过.load命令来加载一个扩展DLL时)自动调用regfix。

因为我编译不过它的源码,所以很蛋疼的写了一个转发DLL,把原有的WingDbg.dll重命名为WingDbgOrg.dll。我自己编写的DLL则命名为WingDbg.dll来转发一下。

姿势:

  将WingDbg.dll和WingDbgOrg.dll放在WinDbg.exe目录下。

  打开WinDbg.exe进入内核调试模式。通过.load命令加载WingDbg.dll。例如:.load wingdbg(无需加载WingDbgOrg.dll)

  关闭已经打开的寄存器窗口并重新打开即可正常显示寄存器的内存。



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 26245
活跃值: (63297)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
2

收下了,感谢分享

2017-4-23 17:17
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢```
2017-9-16 21:10
0
雪    币: 30
活跃值: (315)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
4
请问32位的,是不是wingdbgorg.dll也要用32位的
2017-11-15 09:37
0
雪    币: 129
活跃值: (407)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
badabadabada 请问32位的,是不是wingdbgorg.dll也要用32位的
嗨,  如果你用的是x86的调试器,  那么很抱歉,  我写的这个dll不行哦.  因为我写的  dll  面有几个windbg.exe的偏移是不一样的,  版本不同偏移也就不同.  你可以直接使用原文作者提供的x86版本的dll,  姿势:  下载原版  x86  wingdbg.dll  放在windbg.exe目录下,  然后在windbg命令行里面输入  ".load  wingdbg"  然后再输入  "!WingDbg.regfix"  即可.
2017-12-12 15:01
0
雪    币: 346
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
感谢分享!
2017-12-12 16:17
0
雪    币: 1202
活跃值: (218)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
赞!
2020-9-9 18:59
0
游客
登录 | 注册 方可回帖
返回
//