Как мне узнать, что делает вызов UnsafeNativeMethods.DispatchMessageA с помощью windbg? - PullRequest
0 голосов
/ 16 сентября 2009

Я отследил свою тупиковую ситуацию до этой ветки, которая больше не качает сообщения, но как мне сделать еще один шаг вперед и выяснить, что в данный момент делает эта нить? Я использую Windbg и случайные прогулки с помощью! До сих пор не дал мне приставать

большое спасибо

Oskar

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()

Ответы [ 2 ]

1 голос
/ 16 сентября 2009
!dumpstack 

делает трюк, хорошая детальная трассировка стека в неуправляемую DLL

0 голосов
/ 16 сентября 2009

kn100 даст вам собственный стек, но похоже, что он вызывает DispatchMessage , что означает, что он, вероятно, застрял в обработчике окна целевого окна (то есть событие "OnSize" или что-то в вашем коде)

Взломайте структуру MSG, чтобы увидеть окно и сообщение, которое он пытается отправить, и найдите соответствующий обработчик событий в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...