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