Comment puis-je savoir ce que fait un appel UnsafeNativeMethods.DispatchMessageA à l'aide de windbg?
Question
J'ai repéré mon impasse sur ce fil ne pompant plus de messages, mais comment puis-je aller plus loin et savoir ce que le fil est en train de faire? J'utilise windbg et des promenades aléatoires à l'aide de! Do ne m'a pas encore renseigné
merci beaucoup
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()
La solution
!dumpstack
fait le tour, belle pile détaillée dans la dll non gérée
Autres conseils
kn100 vous donnera la pile native, mais il semble que cela appelle DispatchMessage , ce qui signifie qu'il est probablement bloqué dans le gestionnaire de fenêtre de la fenêtre cible (c'est-à-dire un événement" OnSize "ou quelque chose dans votre code)
Ouvrez la structure MSG afin que vous puissiez voir la fenêtre et le message qu’elle tente d’envoyer, puis recherchez le gestionnaire d’événements correspondant dans votre code.