【发布时间】:2015-04-08 21:55:36
【问题描述】:
我可以使用从任意模块转储类型
dt modulename!type
在某些情况下我看到了例如
dt nt!_TEB
(它可以工作)虽然该模块被称为ntdll:
0:001> lm m nt
start end module name
0:001> lm m ntdll
start end module name
00000000`76e00000 00000000`76fa9000 ntdll (pdb symbols) d:\...\ntdll.pdb
正如您在上面看到的,ntdll 不能总是被nt 替换。
dt nt!type 与 dt ntdll!type 有区别吗?或者它总是可以以快捷方式使用?我正在寻找有来源的可靠答案,而不仅仅是“是”。
我试过了:
- 阅读WinDbg帮助
.hh dt
如果您有一些想要分享的背景知识,请回答问题:
- 是否有其他命令可以使用
nt代替ntdll或者这是dt特定的? - 还有其他具有快捷方式的模块吗?
- 这是从哪里来的(例如,这种行为是否有一些历史背景)?
【问题讨论】:
-
nt = Windbg 中的 kernel.exe 而不是 ntdll
-
@magicandre1981:至少两个命令(
dt nt!_TEB和dt ntdll!_TEB)都在用户模式调试下工作,为什么要引用那里的内核?