¿Cómo puedo saber qué hace una llamada UnsafeNativeMethods.DispatchMessageA usando windbg?

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

  •  07-07-2019
  •  | 
  •  

Pregunta

He rastreado mi punto muerto hasta que este hilo ya no envía mensajes, pero ¿cómo puedo ir un paso más allá y descubrir qué está haciendo el hilo actualmente? Estoy usando windbg y caminatas aleatorias usando! Do no me ha dado nada hasta ahora

muchas gracias

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()
¿Fue útil?

Solución

!dumpstack 

hace el truco, bonito seguimiento detallado de la pila en el dll no administrado

Otros consejos

kn100 le dará la pila nativa, pero parece que está llamando a DispatchMessage , lo que significa que probablemente esté atascado en el controlador de la ventana de la ventana de destino (es decir, un evento" OnSize "o algo en su código)

Abra la estructura MSG para que pueda ver la ventana y el mensaje que está tratando de enviar, luego busque el controlador de eventos correspondiente en su código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top