windbgを使用してUnsafeNativeMethods.DispatchMessageA呼び出しが何を行っているかを確認するにはどうすればよいですか?

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

  •  07-07-2019
  •  | 
  •  

質問

このスレッドへのデッドロックを追跡し、メッセージを送信しなくなりましたが、さらに一歩進めて、スレッドが現在何をしているのかを知るにはどうすればよいですか?私はwindbgを使用しており、!doを使用したランダムウォークはこれまでのところ私に不安を与えていません

多くの感謝

オスカー

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()
役に立ちましたか?

解決

!dumpstack 

アンマネージdllに巧妙で詳細なスタックトレースを行います

他のヒント

kn100 はネイティブスタックを提供しますが、 DispatchMessage 。これは、おそらくターゲットウィンドウのウィンドウハンドラー(つまり、" OnSize"イベントまたはコード内の何か)に留まっていることを意味します

MSG構造体をクラックして、送信しようとしているウィンドウとメッセージを確認し、コード内で対応するイベントハンドラを見つけます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top