問題タブ [sos]

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.

0 投票する
2 に答える
156 参照

windbg - syncblk が 0 ではなく -4 にあるのはなぜですか?

したがって、オブジェクトの同期ブロックを見たい場合、sos の下では、オブジェクト アドレスの前に -4 バイト (32 ビット マシン上) を見なければなりません。4 バイトに戻るための知恵を知っている人はいますか? つまり、同期ブロックを 0 に、タイプ ハンドルを +4 に、オブジェクト フィールドを +8 に設定できます。

0 投票する
2 に答える
3808 参照

memory-management - !dumpheap-typeの代わりにWinDbgを使用しますか?

!dumpheap-statから次の行を取得しました

441762の文字列が何に使用されているのか知りたいです。を行う

すべてをリストしますか、それとも私は間違っていますか?それらのいくつかを分析するにはどうすればよいですか?

0 投票する
2 に答える
6668 参照

memory-leaks - windbg!gcroot
ルートを返しません

!gcrootが空のスレッドリストを返すとはどういう意味ですか?

!dumpheap -type System.Stringを実行すると、多くのエントリがありますが、上記の例のように、ほとんどのエントリは何も返しません。

0 投票する
1 に答える
557 参照

silverlight - Windbg に接続された IE の下の Silverlight アプリケーション

Internet Explorer (またはその他のブラウザー) で実行されている Silverlight ベースのアプリケーションに Windbg を接続することはできますか? 可能であれば、ブラウザにwindbgを接続する必要がありますか?これにより、Internet ExplorerでミニCLRにアクセスできますか?

0 投票する
3 に答える
743 参照

sos - スレッドが待機しているオブジェクトに関する情報

次のスタックトレースがある場合、スレッドが特定のロックを待機していることがわかります。このスレッドが待機しているオブジェクトに関する情報を取得するにはどうすればよいですか?SyncBlkコマンドを実行できるはずだと思っていましたが、ロックとその所有者スレッドに関する情報しか提供できないようです。

0 投票する
1 に答える
3217 参照

windbg - Windbgのネイティブコールスタックトレースは意味がありません

簡単なテストプログラムがあり、ロックを無限に待機します。

したがって、メインスレッドは、Monitor.Enter(sync)を実行しようとすると、基本的にロックされます。メインスレッドで!clrStackを見ると、その出力は基本的に意味のあるものを示していますが、スタックのネイティブ側を確認しようとすると、単一/複数オブジェクトタイプの呼び出しで待機することが期待されますが、表示されませんそれ。誰でも説明できますか。ありがとう

mscorwks.dllのPDBシンボルがロードされていません
OSスレッドID:0x1e8(0)
ESP EIP
0012f0a8 77455e74 [GCFrame:0012f0a8]
0012f178 77455e74 [HelperMethodFrame_1OBJ:0012f178] System.Threading.Monitor.Enter(System.Object)0012f1d0 00a40177 Main(System.String [])
0012f400 70fc1b4c [GCFrame:0012f400]
0:000> kb
ChildEBP RetAddr Args to Child
警告:スタックアンワインド情報は利用できません。次のフレームが間違っている可能性があります。
0012eeb4 710afb92 0012ee68 002d6280 00000000 ntdll!KiFastSystemCallRet
0012ef1c 710af7c3 00000001 002d6280 00000000 mscorwks!StrongNameFreeBuffer + 0x1b1f2
0012ef3c 710af8cc 00000001 002d6280 00000000 mscorwks!
0012efc0 710af961 00000001 002d6280 00000000 mscorwks!StrongNameFreeBuffer + 0x1af2c
0012f010 710afae1 00000001 002d6280 00000000 mscorwks!StrongNameFreeBuffer + 0x1afc1
0012f06c 70fdc5ae FFFFFFFF 00000001 00000000 mscorwks!StrongNameFreeBuffer + 0x1b141
0012f080 710df68a FFFFFFFF 00000001 00000000 mscorwks!LogHelp_NoGuiOnAssert + 0x10562
0012f10c 710b1154 002aad90 FFFFFFFF 002aad90 mscorwks!StrongNameFreeBuffer + 0x4acea
0012f128 710b10d8 42b8b47d 00000000 002aad90 mscorwks!StrongNameFreeBuffer + 0x1c7b4
0012f1e0 70fc1b4c 0012f1f0 0012f230 0012f270 mscorwks!StrongNameFreeBuffer + 0x1c738
0012f1f0 70fd2219 0012f2c0 00000000 0012f290 mscorwks + 0x1b4c
0012f270 70fe6591 0012f2c0 00000000 0012f290 mscorwks!LogHelp_NoGuiOnAssert + 0x61cd
0012f3ac 70fe65c4 0023c038 0012f478 0012f444 mscorwks!CoUninitializeEE + 0x2ead
0012f3c8 70fe65e2 0023c038 0012f478 0012f444 mscorwks!CoUninitializeEE + 0x2ee0
0012f3e0 7103389d 0012f444 42b8b0f1 00000000 mscorwks!CoUninitializeEE + 0x2efe
0012f544 710337bd 002332e0 00000001 0012f580 mscorwks!GetPrivateContextsPerfCounters + 0xf546
0012f7ac 71033d0d 00000000 42b8b9c9 00000001 mscorwks!GetPrivateContextsPerfCounters + 0xf466
0012fc7c 71033ef7 00ce0000 00000000 42b8979 mscorwks!GetPrivateContextsPerfCounters + 0xf9b6
0012fccc 71033e27 00ce0000 42b8b8a1 00000000 mscorwks!CorExeMain + 0x168
*エラー:シンボルファイルが見つかりませんでした。デフォルトでは、C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \mscoreei.dllのシンボルをエクスポートします--0012fd1471cf55ab 71033d8f 0012fd30 71f37f16 mscorwks!CorExeMain + 0x98
*
エラー:シンボルファイルが見つかりませんでした。デフォルトでは、C:\ Windows \ system32 \mscoree.dllのシンボルをエクスポートします
-0012fd2071f37f1600000000 71cf0000 0012fd44 mscoreei!CorExeMain + 0x38
0012fd30 71f34de3 00000000 7723d0e9 7ffd8000 mscoree!CreateConfigStream + 0x13f
0012fd44
774319bb 7ff 00000000 ntdll!RtlInitializeExceptionChain + 0x63
0012fd9c 00000000 71f34ddb 7ffd8000 00000000 ntdll!RtlInitializeExceptionChain + 0x36

0 投票する
1 に答える
3712 参照

.net - メモリ ダンプ内のすべてのインスタンスのフィールドを検査する

クライアントの問題のトラブルシューティングに使用しているメモリ ダンプがあります。これは .NET (C#) アプリケーションです。私のアプリケーションの問題は、特定のクラスのインスタンスがあまりにも多く作成されていることです。このクラスには 6300 のインスタンスがありますが、20 ほどあるはずです。これらすべてのインスタンスをループして、各インスタンスの名前フィールドを呼び出したいと思います。WinDbg/SOS でこれを行う簡単な方法はありますか?

!dumpheap -type {typename} を使用してそのクラスのすべてのインスタンスを検索できることはわかっていますが、それらをすべて展開して関心のあるフィールドを表示する方法がわかりません。

0 投票する
1 に答える
1888 参照

windbg - psscor2の64ビットバージョンはありますか?

WinDbgを使用してWindows7/64ビットで実行されている.NET3.5、32ビットアプリケーションをデバッグしようとしています。psscor2を使いたいのですが、読み込めません。sosもロードできません。

psscor2をロードしようとすると、次のエラーが発生します。

sosをロードしようとすると、次のエラーが発生します。

私の推測では、64ビットバージョンのWinDbgは、psscor2やsosなどの32ビット拡張dllをロードできません。しかし、32ビットバージョンのWinDbgまたは64ビットバージョンのpsscor2のダウンロードが見つかりませんでした。

PS:私は(ある種の)問題を解決しました:32ビット仮想マシンにWindows 7 SDKをインストールし、そこから開発用PCに32ビットバージョンのWinDbgをコピーしました。しかし、これを行うためのより簡単な方法が必要です!

0 投票する
0 に答える
340 参照

silverlight - WinDBG と SOS を使用して Silverlight をデバッグしている間に行き詰まる

私はWinDBGが初めてです。メモリ リークの原因を探していて、現在の知識で可能な限り調べました。

MVVM アプリでMyLovelyViewオブジェクトがリークしています。

WinDBG では、次のように実行!dumpheap -type MyLovelyViewして取得します。

現時点ではオブジェクトをメモリに保持してはならないことを知っておりMyLovelyView、GC を強制的に複数回実行して、オブジェクトがぶらぶらしていないようにしました。

そのため、コマンドを使用してルートを確認する!gcroot 05f7dd70と、次のようになります。

サードパーティのコントロールを使用してリークを再現しようとしましたが、これは単純なダミーアプリであり、これまでのところ成功していません.

この時点で、私は立ち往生しています。デバッグの経験が豊富な人は、次のステップがどうあるべきか知っていますか?

MyLovelyView追加情報については、XAML が次のようになっていることを確認すると役立つ場合があります。

ありがとう、

更新: XAML (上記) からバインディングを削除すると、!gcroot出力は次のようになります。

(再実行のため、すべてのメモリ アドレスが変更されています)

0 投票する
2 に答える
8394 参照

windbg - WinDbgを使用して、ManagedByte[]の内容をファイルに書き込みます

OutOfMemoryExceptionを示す本番サーバーからのクラッシュダンプがあります。例外自体はここでは関係ありません。

たまたま!dsoを実行して、スタックオブジェクトを表示しました。

MemoryStreamがエラーと関係があるのではないかと思ったので、それをダンプしました。

うわー、56,071,048バイトのバッファは少し大きいようです。このバッファの内容を確認したいのですが:

配列の最初の10個の要素は次のとおりです。

これは巨大な配列です。全部を!dumparrayしたくありません。出力をファイルで表示したいのですが。

質問

このByte[]の内容をファイルにダンプすることは可能ですか?

私は.writememコマンドに精通していますが、これを機能させることができないようです。全長を書いてみましたが、WinDbgはそれが気に入らなかった:

その.writememコマンドを間違ってフォーマットしましたか?