Come faccio a sapere cosa sta facendo una chiamata UnsafeNativeMethods.DispatchMessage con windbg?

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

  •  07-07-2019
  •  | 
  •  

Domanda

Ho rintracciato il mio deadlock su questo thread non pompando più messaggi, ma come faccio a fare un passo ulteriore e capire cosa sta facendo il thread? Sto usando windbg e passeggiate casuali usando! Do non mi ha dato nulla fino ad ora

molte grazie

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()
È stato utile?

Soluzione

!dumpstack 

fa il trucco, bello stacktrace dettagliato nella dll non gestita

Altri suggerimenti

kn100 ti darà lo stack nativo, ma sembra che stia chiamando DispatchMessage , il che significa che probabilmente è bloccato nel gestore della finestra della finestra di destinazione (ovvero un evento " OnSize " o qualcosa nel tuo codice)

Apri la struttura MSG in modo da poter vedere la finestra e il messaggio che sta tentando di inviare, quindi trova il gestore di eventi corrispondente nel tuo codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top