dispatchmessagea 호출이 WindBG를 사용하는 것을 어떻게 말하는지 어떻게 알 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1434355

  •  07-07-2019
  •  | 
  •  

문제

더 이상 메시지를 펌핑하지 않고이 스레드로 교착 상태를 추적했지만 한 걸음 더 나아가서 현재 스레드가 현재 수행하는 작업을 어떻게 파악합니까? 나는 Windbg와 Random Walks를 사용하고 있습니다!

많은 감사합니다

오스카

0:057> !clrstack
OS Thread Id: 0x17f8 (57)
ESP       EIP     
1393f1ac 2070a64a [NDirectMethodFrameStandalone: 1393f1ac] System.Windows.Forms.UnsafeNativeMethods.DispatchMessageA(MSG ByRef)
1393f1bc 04851c91 System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32, Int32, Int32)
1393f258 04851276 System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
1393f2a0 048507e3 System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
1393f2d0 0485062f System.Windows.Forms.Application.Run()
도움이 되었습니까?

해결책

!dumpstack 

관리되지 않는 DLL에 대한 트릭, 멋진 세부적인 스택 트레이스를 수행합니다.

다른 팁

KN100 네이티브 스택을 줄 것입니다. 그러나 그것은 호출되는 것처럼 보입니다. 파견 관리, 이는 아마도 대상 창의 창 핸들러에 갇혀 있음을 의미합니다 (예 : "onsize"이벤트 또는 코드의 무언가).

MSG 구조물을 열면 창과 메시지를 보내려고하는 메시지를 볼 수 있으며 코드에서 해당 이벤트 핸들러를 찾으십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top