Comment puis-je savoir ce que fait un appel UnsafeNativeMethods.DispatchMessageA à l'aide de windbg?

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

  •  07-07-2019
  •  | 
  •  

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()
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top