Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

WinDbg

帖子发起人: merry   发起时间: 2009-03-13 20:26 下午   回复: 4

Print Search
帖子排序:    
   2009-03-13, 20:26 下午
merryzhao 离线,最后访问时间: 2017/2/21 12:41:06 merry

发帖数前25位
注册: 2008-09-26
发 贴: 61
windbg可以查看GDT表吗
Reply Quote

我知道softice可以查看到GDT表的所有描述符,请问windbg是否可以查看GDT表?

谢谢!


IP 地址: 已记录   报告
   2009-03-14, 11:26 上午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: windbg可以查看GDT表吗
Reply Quote

使用dg命令就可以观察GDT表的各个表项,每个表项是按字段显示的,很友好,例如:

0:000> dg 8 0x40
                                  P Si Gr Pr Lo
Sel    Base     Limit     Type    l ze an es ng Flags
---- -------- -------- ---------- - -- -- -- -- --------
0008 00000000 ffffffff Code RE Ac 0 Bg Pg P  Nl 00000c9b
0010 00000000 ffffffff Data RW Ac 0 Bg Pg P  Nl 00000c93
0018 00000000 ffffffff Code RE Ac 3 Bg Pg P  Nl 00000cfb
0020 00000000 ffffffff Data RW Ac 3 Bg Pg P  Nl 00000cf3
0028 80042000 000020ab TSS32 Busy 0 Nb By P  Nl 0000008b
0030 ffdff000 00001fff Data RW Ac 0 Bg Pg P  Nl 00000c93
0038 7ffdf000 00000fff Data RW Ac 3 Bg By P  Nl 000004f3
0040 00000400 0000ffff Data RW    3 Nb By P  Nl 000000f2

如果要观察GDT表的原始形式,那么可以通过!pcr或者r gdtr得到GDT表的基地址,然后使用内存观察命令观察:

lkd> !pcr
KPCR for Processor 0 at ffdff000:
    Major 1 Minor 1
 NtTib.ExceptionList: acb74c7c
     NtTib.StackBase: acb74df0
    NtTib.StackLimit: acb71000
  NtTib.SubSystemTib: 00000000
       NtTib.Version: 00000000
   NtTib.UserPointer: 00000000
       NtTib.SelfTib: 7ffde000

             SelfPcr: ffdff000
                Prcb: ffdff120
                Irql: 00000000
                 IRR: 00000000
                 IDR: ffffffff
       InterruptMode: 00000000
                 IDT: 8003f400
                 GDT: 8003f000
                 TSS: 80042000

       CurrentThread: 8946b630
          NextThread: 00000000
          IdleThread: 80551d20

           DpcQueue:
lkd> dd 8003f000
8003f000  00000000 00000000 0000ffff 00cf9b00
8003f010  0000ffff 00cf9300 0000ffff 00cffb00
8003f020  0000ffff 00cff300 200020ab 80008b04
8003f030  f0000001 ffc093df e0000fff 7f40f3fd
8003f040  0400ffff 0000f200 00000000 00000000
8003f050  95000068 80008954 95680068 80008954
8003f060  2f30ffff 00009302 80003fff 0000920b
8003f070  700003ff ff0092ff 0000ffff 80009a40


IP 地址: 已记录   报告
   2009-03-17, 09:18 上午
merryzhao 离线,最后访问时间: 2017/2/21 12:41:06 merry

发帖数前25位
注册: 2008-09-26
发 贴: 61
Re: windbg可以查看GDT表吗
Reply Quote

Hi!Raymond

    谢谢你的热心解答!

    我问这个问题是想查看一下GDT描述符的s位,然而从dg命令中看不到这个信息 因此,请教一下:

   1.)有没有"比较友好"的方式办法能查看GDT描述符的s位的状况(我想看一下LDT在GDT的信息)

   2.)听说winxp不再使用CPU的 IDT表,请问是这样吗?(也许用windbg能够直接看到,可惜我不会,:) )

  谢谢!

   


IP 地址: 已记录   报告
   2014-05-09, 15:51 下午
systomnet 离线,最后访问时间: 2014/5/10 4:51:46 dbxmm

无等级
注册: 2014-05-09
发 贴: 1
Re: windbg可以查看GDT表吗
Reply Quote
1.本人菜鸟,弱弱问一下,注意到左边的提示符lkd,请问怎么进入这种模式?
2.网上的方法不管用啊,网上说启动Windbg的时候使用“-kl”参数,使用之后出现如下对话框。
Unable to debug the local kernel,Win32 error 0n87 参数错误
这些问题应该查找哪方面的资料呢?

IP 地址: 已记录   报告
   2014-05-11, 06:41 上午
SkyDown 离线,最后访问时间: 2017/5/20 7:47:23 zhaohui2

发帖数前50位
注册: 2013-06-19
发 贴: 19
Re: windbg可以查看GDT表吗
Reply Quote
要打开os的调试模式,然后用管理员打开,应该就是这样

IP 地址: 已记录   报告
高端调试 » 软件调试 » WinDbg » Re: windbg可以查看GDT表吗

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.