2012-02-13 11 views
-4

私は例外の原因を追跡しようとしていますが、スタックトレースの最後の行がどこにあるかが時々分かります。それ以外の場合は、スタックトレースに記述されている他の行にブレークポイントを設定する必要があります。スタックトレースを読み取る

例として、2番目から最後の行(2番目から2番目)で例外が発生した場合、スタックトレースはこの行で停止しません。代わりに1行追加して印刷します。これは欺かれています。実行時に、スタックトレースの最後の行に記述されているこのファイルに例外が表示されます。しかし、スタックトレースに記載されている2行目から最後の行にブレークポイントを設定すると、問題の内容が明確になります。

私は例外が発生したときに、あなたのデバッガがに行く場所あなたがわずかに異なるスタックトレースが表示される場合があります3例を考えることができ
+6

スタックトレースの例を投稿してください。誤った情報が見つかった箇所を正確に指摘してください。 – Yuck

答えて

1

  1. リリースモードでビルドされたアセンブリ終わることができが最適化されているとコードあなたがデバッグしているのは、実行中のILを正確に表すものではないかもしれません。
  2. try {do();} catch(例外e){throw e; }スタックトレースを変更します。
  3. 「マイコードのみ」を有効にしていて、ソースコードを持つ外部コードから例外がスローされた場合、デバッガが停止したい場所とは少し異なるスタックトレースが発生する可能性があります。
関連する問題