2012-04-10 8 views
0

このスタックトレースを読み取るには? バグを修正するためにこれを理解する方法を私に説明することができます。私の例のように、C#からstacktraceを読み込む方法は?

"Frame Image    Function                Offset  
0  coredll.dll  xxx_RaiseException             19   
1  mscoree3_7.dll                   436488  
2  mscoree3_7.dll                   386545  
3  mscoree3_7.dll                   540936  
4       TransitionStub              0   
5       GeoCaching.Main.btnGoToPin_Click          312  
6       System.Windows.Controls.Primitives.ButtonBase.OnClick    132  
7       System.Windows.Controls.Button.OnClick        120  
8       System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp 228  
9       System.Windows.Controls.Control.OnMouseLeftButtonUp     100  
10       MS.Internal.JoltHelper.FireEvent          896  
11  mscoree3_7.dll                   429164  
12  mscoree3_7.dll                   430528  
13  mscoree3_7.dll                   610803  
14  mscoree3_7.dll                   374593  
15                        0   
16  agcore.dll  CCoreServices::CLR_FireEvent           385  
17  npctrl.dll  CControlBase::ScriptCallback           435  
18  npctrl.dll  CXcpDispatcher::OnScriptCallback          547  
19  npctrl.dll  CXcpDispatcher::OnReentrancyProtectedWindowMessage     479" 
+0

である場合、あなたは私達にコードのビットを表示することはできませんか? – ChaosPandion

答えて

1

スタックトレースから多くの情報を得ることはできません。メソッドがあるアセンブリの名前であるImageの名前と、メソッドの名前であるFunctionの名前を読み取ることができます。

GeoCaching.Main.btnGoToPin_ClickまたはTransitionStubのメソッドに例外があるように見えますが、スタックトレースだけでは、例外の種類やExceptionオブジェクトに入れられた情報がわかりません。

デバッグ情報を使用してアプリケーションをコンパイルすると、各メソッドの行番号のようなスタックトレースの情報が得られます。

0

提供されている情報からは、btnGoToPin_Clickの中に例外があります。

その実際の情報源を確認するには、そのイベントハンドラ内にtry/catchを追加してください。おそらくエラーが発生します。

+0

いいえ、 '312'は行番号ではなく、ネイティブコードのオフセットです。 – Guffa

+0

訂正されました。 – Tigran

0

としては、前にも言った幸運は、エラーが、それはあなたが完全なスタックトレースを持っていない理由ですどこかbtnGoToPin_Click しかしアプリケーションをリリースモードでコンパイルさです。

アプリがリリースモードでコンパイルされると、コンパイラはいくつかの最適化を行います。 あなたのケースに最初に適用できるのは、このメソッドの本体でsmallメソッドへの呼び出しを置き換えることです。これは「インライン最適化」と呼ばれます

エラーは、btnGoToPin_Clickで呼び出された別のメソッドにありますが、インライン展開のためにスタックトレースに表示されないことがあります。

あなたがここにインライン化に関する詳細情報は、nice article

関連する問題