Wie kann ich feststellen, was ein UnsafeNativeMethods.DispatchMessageA Anruf mit windbg tut?

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

  •  07-07-2019
  •  | 
  •  

Frage

Ich habe meine Deadlock auf diesen Thread Nachrichten nicht aufgespürt Pumpen mehr, aber wie mache ich noch einen Schritt weiter und herauszufinden, was der Thread gerade tut? Ich verwende windbg und Irrfahrten mit! Sie hat mich nicht so weit gegeben anuthing

vielen Dank

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()
War es hilfreich?

Lösung

!dumpstack 

funktioniert der Trick, schön detaillierte Stacktrace in der nicht verwalteten DLL

Andere Tipps

kn100 geben Sie die native Stack, aber es sieht aus wie Dispatch , was bedeutet, dass es wahrscheinlich in dem Zielfensters Fenster-Handler (dh ein festsitzt "OnSize" Ereignis oder etwas in Ihrem Code)

Riss die MSG-Struktur öffnen, so dass Sie das Fenster sehen können und die Nachricht, um sie zu senden versuchen, dann die entsprechenden Event-Handler in Ihrem Code finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top