Visual Studioでメソッドを呼び出し、コールスタックを調べてデバッグを試みます。
その中のいくつかの行は「外部コード」とマークされています。
これはどういう意味ですか? .dllのメソッドが実行されましたか?
ばかげた質問;しかし、明確な答えが必要です。
symbol informationが現在Visual Studio Debugger
で利用できない行です。つまり、Debugger
は実行された行からコードを取得できません。
シンボル情報のダウンロードや設定ができるのでcurrentlyと書いた。
詳細については、こちらをご覧ください。 方法:シンボルの場所と読み込み動作を指定する
[外部コード]は、そのdllに利用可能なデバッグ情報がないことを意味します。
あなたができることはCall Stack
ウィンドウでマウスの右ボタンをクリックすることです。次にShow External Code
を選択すると、[外部コード]が展開され、呼び出されているモジュールが表示されます。
展開すると、呼び出されているDLLが表示され、Symbol Load Information...
をクリックしてディスク上の場所を取得できます。
ディスク上の場所を示すダイアログが開きます
これらの外部ファイルをデバッグする場合は、dllの.pdb
ファイルを取得し、.dll
と同じフォルダーに配置する必要があります。
これにより、Load symbols
(上のスクリーンショット2のメニューSymbol Load Information
)を使用してデバッグを開始できるようになります。
これにより時間を節約できることを願っています。
「外部コード」という表記は、「マイコード」に属さないすべてのものを指します。
これは、MSDNのドキュメントで説明されている方法です 方法:コールスタックウィンドウを使用する
マネージコードでは、デフォルトで。呼び出しスタックウィンドウは、非ユーザーコードの情報を非表示にします。 >非表示の情報の代わりに、次の表記が表示されます。
<[外部コード]>
非ユーザーコードは、「マイコード」以外のコードです。`
Your Code
は、自分が書いたすべてのことを自分で考えたかもしれません。したがって、この定義では、外部dllに属するすべてがコールスタックのトレースで省略されます。
さらに How to:Step Into Just My Code によると、デバッガがユーザー以外のコードをトレースすることを拒否する可能性があります。
ここに何の説明がありますuser code
実際には:
ユーザーコードと非ユーザーコードを区別するために、Just My Codeは、DBGファイル、PDBファイル、最適化の3つを調べます。
これらの行は、現在ロードしているデバッグシンボルでは参照されません。
このコードは、外部DLLの一部である場合と、CLR内のネイティブコードである場合があります。どのモジュールであるかがわかっていて、それらのデバッグシンボルがある場合は、それらをVisual Studioに手動でロードできます。
コード/シンボルがないメソッド。 .NETフレームワークやサードパーティのアセンブリと同様です。
[デバッグ]メニューの[プロセスにアタッチ]アクションを使用して、ホストアプリの実行中のインスタンスをデバッグできます。 (実行中のプロセスにはデバッグシンボル.pdbファイルがあります)。