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

Windows内核调试

帖子发起人: Da Vinci   发起时间: 2009-07-27 14:20 下午   回复: 12

Print Search
帖子排序:    
   2009-07-27, 14:20 下午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
请教张老师和其它老师一个问题
Reply Quote
我遇到一个关于系统hang住的问题,系统的explorer死掉了,没有响应,每次重启基本上都有一定的概率出现hang住的问题,怀疑是哪个驱动的锁的问题。由于出问题的机器不在我手边也没办法远程调试,所以我只好让对方手动触发了一个蓝屏(改注册表然后按某个键),这样做的目的是希望得到系统的一个dump文件,把系统当前的状态抓下来分析。dump拿到了,看了explorer的线程,似乎没有发现什么大问题,只有一个线程的irp list比较可疑,似乎irp比较多。另外用locks看了锁,似乎也没有什么问题。

我的问题是:
1. 这样得到的dump文件,对于分析explorer hang住的问题有效果么? 因为是手动触发的蓝屏,所以用analyze -v分析的结果肯定与原来想要的不一样。
2. 如果这样的dump文件对于分析当前系统的状态有效,那么我该如何通过一个手动触发的dump文件,来分析另外一个进程出现的问题呢? 毕竟不是explorer进程引起的蓝屏,而是想通过蓝屏的dump文件间接的得到explorer的状态。
3. windbg还有什么方式能够分析这种问题?

如果出问题的机器在旁边就好了,要命的就是不在,所以不得不间接分析了。

请张老师和其它老师们不吝赐教





IP 地址: 已记录   报告
   2009-07-27, 15:03 下午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
以下是UI线程的信息,0000055a这个消息可疑,不过不清楚怎么得到发送消息的进程,用的dd命令么?没办法查到它的信息

THREAD 88f723e0 Cid 08bc.08c0 Teb: 7ffde000 Win32Thread: fe45d568 WAIT: (WrUserRequest) UserMode Non-Alertable
88e2db58 SynchronizationEvent
Not impersonating
DeviceMap 9818fe70
Owning Process 88f76470 Image: explorer.exe
Wait Start TickCount 3548 Ticks: 1319 (0:00:00:20.576)
Context Switch Count 2444 NoStackSwap
UserTime 00:00:00.234
KernelTime 00:00:00.390
Win32 Start Address 0x00b8a8ff
Stack Init b48d5fd0 Current b48d5a88 Base b48d6000 Limit b48d3000 Call 780
Priority 12 BasePriority 8 PriorityDecrement 2 IoPriority 2 PagePriority 5
ChildEBP RetAddr Args to Child
b48d5aa0 834c1a58 88f723e0 00000000 8357cd20 nt!KiSwapContext+0x26 (FPO: [Uses EBP] [0,0,4])
b48d5ad8 834c0113 88f724a0 88f723e0 88e2db58 nt!KiSwapThread+0x266
b48d5b00 834ba24f 88f723e0 88f724a0 00000000 nt!KiCommitThreadWait+0x1df
b48d5b7c 98e30d65 88e2db58 0000000d 00000001 nt!KeWaitForSingleObject+0x393
b48d5bd8 98e30e00 00000200 00000000 00000000 win32k!xxxRealSleepThread+0x1d7 (FPO: [Non-Fpo])
b48d5bf4 98ddf4c0 00000200 00000000 00000000 win32k!xxxSleepThread+0x2d (FPO: [Non-Fpo])
b48d5c68 98e347d0 008037e0 0000055a 00000000 win32k!xxxInterSendMsgEx+0xb1c (FPO: [Non-Fpo])
b48d5cb8 98ddf713 fe8037e0 0000055a 00000000 win32k!xxxSendMessageTimeout+0x13b (FPO: [Non-Fpo])
b48d5ce0 98e21892 fe8037e0 0000055a 00000000 win32k!xxxWrapSendMessage+0x1c (FPO: [Non-Fpo])
b48d5d10 8349657a 00010056 0000055a 00000000 win32k!NtUserMessageCall+0xa7 (FPO: [Non-Fpo])
b48d5d10 77d96544 00010056 0000055a 00000000 nt!KiFastCallEntry+0x12a (FPO: [0,3] TrapFrame @ b48d5d34)
IP 地址: 已记录   报告
   2009-07-27, 15:04 下午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
0: kd> dd fe8037e0
fe8037e0 ???????? ???????? ???????? ????????
fe8037f0 ???????? ???????? ???????? ????????
fe803800 ???????? ???????? ???????? ????????
fe803810 ???????? ???????? ???????? ????????
fe803820 ???????? ???????? ???????? ????????
fe803830 ???????? ???????? ???????? ????????
fe803840 ???????? ???????? ???????? ????????
fe803850 ???????? ???????? ???????? ????????
IP 地址: 已记录   报告
   2009-07-27, 15:08 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教张老师和其它老师一个问题
Reply Quote
Hang住的情况千奇百怪,建议你再搜集些信息看是哪个层次的问题。
1)Ctrl+Alt+Del是否可以把任务管理器调出来,如果可以,那么就只是Explorer进程Hang住了,进不了桌面,这样的问题要简单的多了。
2)鼠标是否还能移动?
3)硬盘灯是否还闪烁?


IP 地址: 已记录   报告
   2009-07-27, 15:14 下午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
主要机器不在手边。ctrl+alt+del不能调出任务管理器,鼠标不能移动,硬盘灯不清楚。。

IP 地址: 已记录   报告
   2009-07-27, 15:25 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教张老师和其它老师一个问题
Reply Quote
如果鼠标都不能动(假设鼠标没有坏^-^),那么就不必急着看窗口消息了。
尝试执行下面几条命令:
!dpcs
!prcb
!pcr
!locks

IP 地址: 已记录   报告
   2009-07-27, 15:59 下午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
这几个命令我都试过,!locks得到了两个锁:
**** DUMP OF ALL RESOURCE OBJECTS ****
KD: Scanning for held locks.....

Resource @ 0x87b4c174    Shared 6 owning threads
     Threads: 88ccd030-03<*> 88d1eb20-02<*> 88d386f0-02<*> 88d38408-02<*>
              88ccd6e0-02<*> 88ff2638-02<*>
KD: Scanning for held locks........................................................................................................

Resource @ 0x88620098    Exclusively owned
    Contention Count = 4620
    NumberOfExclusiveWaiters = 10
     Threads: 894bd518-01<*>
     Threads Waiting On Exclusive Access:
              89100a58       893f36e8       893fd748       892546b8      
              888b3758       88f05680       889d5ca0       883fdb20      
              888ae5a0       8937fb10      

!drcs:
CPU Type      KDPC       Function
 0: Normal  : 0x8683797c 0x9232eba5 USBPORT!USBPORT_Xdpc_Worker

!prcb:
PRCB for Processor 0 at 8357cd20:
Current IRQL -- 2
Threads--  Current 83586280 Next 00000000 Idle 83586280
Number 0 SetMember 00000000
Interrupt Count -- 0000ecb8
Times -- Dpc    0000001b Interrupt 00000010
         Kernel 00001204 User      000000ff

!pcr:

KPCR for Processor 0 at 8357cc00:
    Major 1 Minor 1
    NtTib.ExceptionList: 835795d8
        NtTib.StackBase: 00000000
       NtTib.StackLimit: 00000000
     NtTib.SubSystemTib: 801e6000
          NtTib.Version: 000471f3
      NtTib.UserPointer: 00000001
          NtTib.SelfTib: 00000000

                SelfPcr: 8357cc00
                   Prcb: 8357cd20
                   Irql: 0000001f
                    IRR: 00000000
                    IDR: ffffffff
          InterruptMode: 00000000
                    IDT: 80b95400
                    GDT: 80b95000
                    TSS: 801e6000

          CurrentThread: 83586280
             NextThread: 00000000
             IdleThread: 83586280

              DpcQueue:  0x8683797c 0x9232eba5 [Normal] USBPORT!USBPORT_Xdpc_Worker







IP 地址: 已记录   报告
   2009-07-27, 16:00 下午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
因为是手动触发了蓝屏,所以不清楚这些信息对于explorer的hang住还有没有分析的可能。
上面的信息我看和explorer hang住了没什么关系阿?

IP 地址: 已记录   报告
   2009-07-27, 20:56 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教张老师和其它老师一个问题
Reply Quote
要搞清是Explorer进程挂死还是整个系统挂死,这是完全不同性质的两件事。根据上面的信息中所包含的CPU状态,鼠标应该是可以移动的,不知楼主是认真调查过,还是随便推测了一下。
IP 地址: 已记录   报告
   2009-07-28, 08:53 上午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
我仔细检查过,鼠标和ctrl+alt+del不能用。对方朋友也检查过。
由于这台机器在别的国家,所以远程VNC非常的慢...只能这样检查dump文件了。



IP 地址: 已记录   报告
   2009-07-28, 08:54 上午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
张老师,如何看出鼠标是可以移动的呢?
IP 地址: 已记录   报告
   2009-07-28, 09:00 上午
chenzf 离线,最后访问时间: 2009/8/6 12:38:15 Da Vinci

发帖数前25位
男
注册: 2008-11-03
发 贴: 38
Re: 请教张老师和其它老师一个问题
Reply Quote
根据测试,这台机器应该是系统挂死,不是简单的explorer的问题,几乎每次重启之后,桌面显示了就hang住了,鼠标不能移动,task manager无法打开。
IP 地址: 已记录   报告
   2009-07-28, 22:31 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教张老师和其它老师一个问题
Reply Quote
CPU在执行IDLE线程,IRQL在DISPATCH_LEVEL,DPC队列中也只有一个任务。由此看,内核的健康状况还很好,CPU是可以响应鼠标设备的硬件中断的。鼠标的光标绘制有硬件支持,不依赖于顶层。
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Re: 请教张老师和其它老师一个问题

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