Como posso dizer o que uma chamada UnsafeNativeMethods.DispatchMessageA está fazendo usando windbg?

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

  •  07-07-2019
  •  | 
  •  

Pergunta

Eu rastreou meu impasse á esta discussão não bombeando mensagens mais, mas como faço para dar um passo adiante e descobrir o que o segmento está fazendo atualmente? Estou usando windbg e passeios aleatórios utilizando! Não me deu anuthing até agora

Muito obrigado

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

Solução

!dumpstack 

faz o truque, stacktrace detalhada agradável para o não gerenciado dll

Outras dicas

kn100 irá dar-lhe a pilha nativa, mas parece que ele está chamando DispatchMessage , o que significa que é provavelmente preso em manipulador de janela da janela de destino (ou seja, uma 'OnSize' evento ou algo em seu código)

O crack abrir o struct MSG que você possa ver a janela e a mensagem que está tentando enviar, em seguida, encontrar o manipulador de eventos correspondente no seu código.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top