問題タブ [debugdiag]
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.
asp.net - デバッガーが接続されているとクラッシュしない .Net/IIS クラッシュをデバッグする
本番環境でクラッシュし始めた .Net Web アプリケーションがありますが、その理由がわかりません。非常に頻繁に (高負荷下で約 5 分ごとに) クラッシュし、アプリケーション プールがダウンします。イベントログには、次のものしかありません。
障害のあるアプリケーション名: w3wp.exe、バージョン: 7.5.7601.17514、タイム スタンプ: 0x4ce7afa2 障害のあるモジュール名: 不明、バージョン: 0.0.0.0、タイム スタンプ: 0x00000000 例外コード: 0x00000000 障害オフセット: 0x000007fe97df95dc
の例外コード0x00000000
は特に役に立ちません。
通常、ここからクラッシュ ダンプを取得して確認します。ただし、DebugDiag
が実行されているときはいつでも、アプリはクラッシュしません。これにより、追跡がはるかに困難になります。DebugDiag の実行中はメモリ使用量が大幅に増加しますが (6 時間ごとに 2 GB ?)、これは正常な動作だと思います。
ここからどこへ行くべきかよくわかりません。
c++ - DebugDiagv2 は、UNKNOWN_MODULE が最大のリークの原因であることを示しています
最もメモリを消費する関数は DomainBoundILStubClass.IL_STUB_PInvoke(UInt32) です。モジュールのベースアドレスは 0x00000000 であるため、おそらく「UNKNOWN_MODULE」モジュールです。関数の詳細は次のとおりです。
機能詳細
スタック トレースの上部または上部付近にこの関数を含むスタックがゼロであるため、何が呼び出されているのかわかりません。
これは、pinvoke された malloc へのすべての呼び出しを集約していると思います。あれは正しいですか?また、「割り当てタイプ」は C/C++ であるため、pinvoke された operator new への呼び出しも含まれますか?
asp.net - DebugDiag は多くの HttpContext を完了していないと表示しますか?
w3wp ワーカー プロセスでプロセス ダンプを取得したところ、HttpContext レポートに表示される HttpContext オブジェクトが多すぎます
XXXXX は、実際にはヘルスチェックのためにディレクトリ内の ASP (クラシック) ページを取得しているだけですが、IIS が実行されてから 15 時間で、これらのページが 3,000 を超えて蓄積されています。これらの HttpContext オブジェクトをクリアするにはどうすればよいですか?
また、サーバー YYYYY でホストされている REST サービスでは、何らかの理由でタイムアウトが 2147483647 秒 (68 年?!?!) に設定されています。これを指定するための設定が web.config ファイルにありません。何か案は?
windbg - Windows クラッシュ ダンプ分析
DebugDiag を使用して Windows のクラッシュ ダンプを分析しています。
これは、レポートの概要の説明です。
XXXX.dmp では、Microsoft Corporation の C:\Windows\System32\msvcr120.dll の msvcr120!abort+4a にあるアセンブリ命令により、スレッド 26 で不明な例外 (0x40000015) が発生しました。
コールスタックは次のとおりです。
皆さん、このクラッシュ ダンプから何がわかるでしょうか?
乾杯、
ドロン
c# - DebugDiag と WinDbg を使用して .Net アプリケーションのメモリ リークを調査する
C# クライアント アプリケーションのメモリ リークを診断しようとしています。このアプリケーション:
- 強化された Windows 環境で実行されます
- ローカルの管理されていないサードパーティ API と通信します
- tcp 経由でサーバー アプリケーションと通信します
- waveOutWrite() 経由で wav ファイルを再生します
- キーボード ベンダー dll を介してカスタム USB キーボードと統合
- サードパーティ API に対してアクションを実行するためのユーザー入力を受け入れます
お客様の構成に応じて、通常の使用でアプリケーションは 50 ~ 100 MB のメモリを使用します。このアプリケーションの最新の更新は、数週間問題なく実行されました (この間、メモリの問題は確認されていません)。その後、お客様が認識しているコードの変更やクライアント マシンへの変更は一切行われませんでしたが、次のような問題が発生し始めました。
- メモリ不足の例外がスローされるまで、制御されていない、急激な、または緩やかなメモリの増加
- カスタム キーボードからの断続的な遅延/不規則な応答性
- オーディオを再生しようとすると、waveOutWrite() がエラー値 1 を返します (メモリが最大使用量に近づく前に発生します)。
DebugDiag 1.2 を使用してリークを監視し、結果として完全なダンプを取得しました。分析からの最初の警告は次のとおりです。
ダンプは、ネイティブ ヒープに 1.19 GB の割り当てを示しています。634MB はMicrosoft VC ランタイム ヒープ (プライベート)から、549MB は DebugDiag LeakTrack ヒープからのものです。634MB ヒープには 44 個のセグメントがあり、そのほとんどが 15.81MB です。
ただし、割り当てレポートは対応していないようです。サイズ別のトップ割り当ては 992KB であり、数量 3 でカウント別のトップでもあります。634MB ヒープのトップ割り当ては次のとおりです。
私はこれを間違って読んでいますか?
WinDbg に移動し、実行する!heap -stat -h [634MBheapaddress] -grp B
と、次のようになります。
これを正しく読んでいる場合、最上位の割り当てが 68 バイトであり、650k の割り当てがあることを示しています。これは正しいです?もしそうなら、それは潜在的な問題である可能性がありますが、44MB しか表していません - 私が予約済みとして示している 650MB にはほど遠いです.
いずれにせよ、この時点では、これらの割り当てが何であるか、または何が割り当てられているかを理解する方法がわかりません. そして、私たちの側でコードを変更することなく、なぜ問題が発生し始めたのか、私は途方に暮れています. お客様のシステムで、お客様が認識していない何かが変更され、コードのバグが明らかになったと想定する必要がありますが、これまでのところ、根本的な原因を突き止めることができませんでした。
どんな助けでも大歓迎です!
windbg - WinDbg でダンプ ファイルを実行した後、適切なスタック トレースを取得できない
クラッシュProduction
の原因となる例外がスローされています。w3wp process
エラーが発生したコードを特定するために、発生Debug Diag
時にダンプ ファイルを作成するように構成しましたexception
。次に、ダンプ ファイルを実行してWinDbg
を取得Stack Trace
し、障害のあるコードを見つけようとしていますが、これは、ダンプ ファイルを開いて必要な を実行した後に発生したものですcommands
。
上の画像でわかるように、stack trace
を実行した後にが表示されcommands
ていません。
アップデート
command
で提案されているように を 2 回実行した後comments
、 を取得できましたstack trace
。しかし、. stack
_ 以下はの開始用です。エラーを特定する方法がわかりません。何か提案がありますか、それともこれのために別に開く必要があるかもしれませんか?framework
stack
snapshot
stack
Question
iis - DebugDiag ツールについて
私が持っているWindowsサーバーのプロセスからのメモリ使用量が多い原因を理解しようとしています。そのツール DebugDiag 1.2 をインストールして、問題を見つけようとしました。
これが私のサーバーで実行されているものです。適切な数のプール アプリケーション (68 個のプール アプリケーション) を持つ IIS サーバーがあります。各プール アプリケーションには、少なくとも 4 つのアプリケーションがあります。最近、メモリ使用率が高く、サーバーが 97% 以上のメモリ使用率で動作するという問題に直面しました。
下のこのプリントスクリーンを撮ったときはうまくいきました。ただし、メモリ使用量は簡単に高くなります。
そうは言っても、Microsoftのツール「DebugDiag1.2」を使用して、問題の原因を特定するのに役立つ何か(ソースコードの一部、SQLプロシージャ)を見つける方法を理解しようとしています。
IIS プール アプリケーションごとにメモリを制限することはできないと読んだので、ソリューションはアプリケーションを最適化しようとしていると思います。しかし、まずどこから始めればよいかを知る必要があります。
誰かが私を助けてくれることを願っています。
.net - DebugDiag 2.0 カスタム ルールでのアセンブリ属性のダンプ
DebugDiag 2.0でカスタム ダンプ分析ルールを作成しようとしています。このコードは、多数のアセンブリを含むマネージ C# アプリケーションです。各アセンブリには、アセンブリを作成するためにコンパイルされたソース ファイルに関するリビジョン情報を含む独自のカスタム属性があります。
WinDbgコマンド!savemodule
または !saveallmodulesを使用して、モジュールをファイルに抽出できることを知っています。その後、JetBrains DotPeek などのツールを使用してアセンブリ属性を検査できます。
DebugDiag 分析中にこれらの属性を見つけて、属性情報を DebugDiag レポートにダンプしたいと考えています。自動分析レポートにこれらの属性があると、チームの効率が向上します。
DebugDiag 2.0 オブジェクトを使用してメモリ ダンプからマネージ アセンブリ属性を抽出するにはどうすればよいですか?
デバッガー オブジェクトからモジュールを取得しようとしましたがNetDbgObj
、そこから属性を取得する便利な方法がわかりません。
ClrModule オブジェクトが NetDbgObj.ClrRuntime オブジェクトを介して利用可能であることを確認できます。ClrModule オブジェクトを取得できましたが、どうすればよいかわかりません。MetadataAddress
、MetadataLength
、 のプロパティがありますがMetadataImport
、それらをどうするかわかりません。
これらの属性オブジェクトはマネージド ヒープ上にないため、!dumpheap -type MyAttribute
返されません。
アセンブリ属性は、アセンブリ データのどこかにメタデータとして格納されます。!DumpModule の出力を見てきました。
dc のようなコマンドを使用してメタデータをダンプできることはわかっています。
ここからどこへ行けばいいのかわからない。
debugdiag - Debug Diag は大きなメモリ ダンプ ファイルを生成します
action typeで特定の を設定Debug Diag
したProduction
場所で構成しました。しかし、問題は、それぞれのサイズが非常に大きいダンプファイルを生成していることです。これらのファイルが大きすぎる理由がわかりません。それへの方法はありますか?Crash rule
app pool
Long Stack Trace
700mb
truncate