問題タブ [windbg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - __vftptr は NULL です
お客様のサイトからクラッシュ ダンプを受け取りました。nstack __vfptr の構造体の 1 つで NUL になっていることがわかります。
問題のある状態 (メモリ オーバーラン、オブジェクトの 2 回の削除など) を常に指していますか、それともこのポインターが null になる可能性がある場合があります。
com - Windbg で GUID を表示できますか?
いくつかの COM コンポーネントをデバッグしようとしていますが、CoCreateInstance の呼び出しで CLSID と IID を追跡したいと考えています。
Windbg で GUID を表示する方法がわかりません。そのための指針。
windbg - windbg: テキスト ファイルへのコマンド出力
WinDbg のコマンドの出力をテキスト ファイルに保存するにはどうすればよいですか?
visual-studio - スタックと逆アセンブルの疑いを呼び出す
3つの疑問1)次のようにコールスタックを取得するとします。
では、各関数の最後に記載されているバイトは何ですか?最初のステートメントのように、0x28バイトは何ですか。
2)VSのWindowsシステムDLLにブレークポイントを設定する方法は?windbgでは、Windowsシステムdllの特定の機能を次のように検索できます。
このコマンドを使用すると、この関数のアドレスを取得し、ブレークポイントを設定できます。Visual Studioでも同じことができますか?
3)dllのシンボルファイルがありません。私が分解しているコールスタックは
__imp__
上記のコールスタックには何がありますか?これは、このWindows関数が他のdllにフックされていることを意味しますか?
windbg - How do I stop windbg from being the interactive debugger?
What is the proper way to undo windbg -I on vista/win7?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug のレジストリ キーを削除するのと同じくらい簡単ですか?
assembly - windbgの関数から戻り値を取得するには?
ハンドルを返す Createthread のようないくつかの win32API をデバッグしようとしています。windbgで戻り値を取得するには?
いくつかの調査を行ったところ、戻り値は通常 EAx レジスタに格納されていることがわかりました。
CreateThread にブレークポイントを設定すると、Createthread のアセンブリにステップ インでき、最終的には ret ステートメントをヒットします。これは、Createthread が を返していることを意味します。
この時点で、EAX レジスタの値をチェックして HANDLE 値を取得する必要がありますか、それとも別の方法ですか?
debugging - 既知のモジュールを使用するWinDbg
私はいくつかのWindowsAPIをデバッグしており、スタックトレースはを示していますUnloaded_hext.dll
。このDLLが見つかりません。シンボルがない場合でも、WinDbgはこのDLL名を出力します。プロセスモニターはこのdllを見つけることができません。
'unloaded'のプレフィックスが付いているのはなぜですか?これはWinDbgによって行われますか、それともトリックはありますか?
lm
コマンドを実行するhext.dll
と、アンロードされたモジュールのセクションが表示されました。ただし、アンロードされている場合、スタックトレースで表示されるのはなぜですか?
memory-management - WinDbg で大きなマネージド オブジェクトのアドレスを取得しました。次は何ですか?
高メモリ使用率のダンプを作成し、!dumpheap -stat と !dumpheap -mt を使用して、それぞれ 30 MB の 2 つの大きな文字列汎用リストのアドレスを取得しました。
これらのリストについてもっと知りたいです。それらに含まれるもの、またはそれらを使用しているコードの一部。
それらを見つける方法はありますか?
0:000> !do 2b370038 名前: System.Object[] MethodTable: 71e240bc EEClass: 71c0da54 サイズ: 33554448(0x2000010) バイト 配列: ランク 1、要素数 8388608、タイプ CLASS 要素タイプ: System.Collections.Generic.List` 1[[System.String, mscorlib]] フィールド: なし
.net - VisualStudioとWinDbgサーバーを使用したリモートデバッグ
WinDBGを(Visual Studioリモートデバッガーの代わりに)サーバーとして使用し、Visual Studioを使用して接続することは可能ですか?
debugging - StackOverflowとプロセスのシャットダウン後のWindbgスレッドID
ADPlusを使用して(クラッシュダンプモードで).dmpファイルを生成します。未処理の例外(フルメモリダンプファイルを生成する)の最後のシーケンスは...
1回目のDLLアンロード:スレッドIDが含まれていますが、StackOverflowExceptionは含まれていません(この時点ではまだ例外がスローされていないため、期待していません)。
1回目のチャンスStackoverflow:スレッドIDが含まれていますが、StackOverflowExceptionは含まれていません。
1回目のチャンスプロセスシャットダウン(シャットダウン):StackOverflowExceptionが含まれていますが、スレッドIDは含まれていません。
???
ADPlusを構成するか、Windbgでコマンドを実行して、例外をキャプチャし、スレッドIDにアクセスする方法はありますか?
Magnusに応えて、スレッドIDが利用できない場合に役立つ情報はありますか?!threadsを実行すると、いくつかの情報が返されますが、スレッドIDと例外の両方がなければ、そこから先に進む場所は他にないようです。この場合、!clrstackを実行する方が、!threadsを実行するよりも便利なようです。