WinDBG 中的 !slist 命令
!slist command in WinDBG
我正在使用 Windows 7 SP1 64 位。在 WinDBG 中,我打开一个可执行文件,然后输入命令
!slist $teb _EXCEPTION_REGISTRATION_RECORD 0
但这是我得到的:
SLIST HEADER:
+0x000 Header8.Sequence : fd
+0x000 Header8.Depth : d000
+0x008 Region : 0
SLIST CONTENTS:
00000000001d0110
+0x000 Next : ????
+0x008 Handler : ????
Can't read memory at 00000000001d0110, error 0
我不明白怎么了。
编辑:我正在尝试手动显示异常处理程序链。如果我输入
!exchain
一切正常:
4 stack frames, scanning for handlers...
Frame 0x00: ntdll!LdrpDoDebuggerBreak+0x30 (00000000`7787cb70)
ehandler ntdll!_C_specific_handler (00000000`777e852c)
Frame 0x01: ntdll!LdrpInitializeProcess+0x17c7 (00000000`77832bed)
ehandler ntdll!_GSHandlerCheck (00000000`777e9840)
Frame 0x02: ntdll! ?? ::FNODOBFM::`string'+0x28ff0 (00000000`77811937)
ehandler ntdll!_C_specific_handler (00000000`777e852c)
当使用 64 位版本的 WinDBG 调试 32 位可执行文件时会发生这种情况。最好安装两个版本的 WinDBG 并使用 32 位版本来调试 32 位应用程序。
我正在使用 Windows 7 SP1 64 位。在 WinDBG 中,我打开一个可执行文件,然后输入命令
!slist $teb _EXCEPTION_REGISTRATION_RECORD 0
但这是我得到的:
SLIST HEADER:
+0x000 Header8.Sequence : fd
+0x000 Header8.Depth : d000
+0x008 Region : 0
SLIST CONTENTS:
00000000001d0110
+0x000 Next : ????
+0x008 Handler : ????
Can't read memory at 00000000001d0110, error 0
我不明白怎么了。
编辑:我正在尝试手动显示异常处理程序链。如果我输入
!exchain
一切正常:
4 stack frames, scanning for handlers...
Frame 0x00: ntdll!LdrpDoDebuggerBreak+0x30 (00000000`7787cb70)
ehandler ntdll!_C_specific_handler (00000000`777e852c)
Frame 0x01: ntdll!LdrpInitializeProcess+0x17c7 (00000000`77832bed)
ehandler ntdll!_GSHandlerCheck (00000000`777e9840)
Frame 0x02: ntdll! ?? ::FNODOBFM::`string'+0x28ff0 (00000000`77811937)
ehandler ntdll!_C_specific_handler (00000000`777e852c)
当使用 64 位版本的 WinDBG 调试 32 位可执行文件时会发生这种情况。最好安装两个版本的 WinDBG 并使用 32 位版本来调试 32 位应用程序。