54

リモートデバッグを使用したい。デバッグしたいプログラムはマシンbで実行されます。VisualStudioはマシン上で実行されます。

マシンbには、次のファイルを含むフォルダーがあります。

  • msvcr72.dll
  • msvsmon.exe
  • NatDbgDE.dll
  • NatDbgDEUI.dll
  • NatDbgEE.dll
  • NatDbgEEUI.dll

一部のファイルが欠落していると思われる場合は、それらが通常どこにあるかについても説明してください。

次のステップでmsvsmon.exe、マシンbでとプログラムを開始しました。マシンaで、VisualStudio2008とプログラムが記述されたソリューションを起動しました。次に、「デバッグ-プロセスにアタッチ」を選択します。「リモートトランスポート(認証なしのネイティブのみ)」を選択しました。修飾子として正しいIPを使用し、正しいプロセス(program.exe)を実行しました。しばらくすると、ポップアップウィンドウに次のメッセージが表示されました。

program.exeの0x7c812a7bで未処理の例外:0xE0434F4D:0xe0434f4d

続行または中断できます。続行すると、例外が何度も何度も発生します。そこで、breakを押すと、次のメッセージが表示されました。

コールスタックフレームにはシンボルはロードされません。ソースコードは表示できません。

4

14 に答える 14

30

アセンブリで生成された.PDBファイルをリモートマシンの同じフォルダーにコピーしてください。これにより、デバッガーはデバッグシンボルを取得できます。

于 2008-09-30T06:23:03.257 に答える
19
  • Visual Studio 2010 の [ツール] メニューで、[オプション] を選択します。
  • [オプション] ダイアログ ボックスで、[デバッグ] ノードを開き、[全般] をクリックします。
  • [必要に応じてすべての設定を表示] をオンにし、 [マイ コードのみを有効にする (管理対象のみ)]を見つけます。
  • チェックを外してOKをクリック

リモートプロセスをアタッチできるようになったら

于 2011-07-13T12:26:55.820 に答える
18
  1. .pdb ファイルの場所を指す共有フォルダーを開発マシンに追加します。
  2. _NT_SYMBOL_PATH開発マシンの共有フォルダーを指すリモート マシンで呼び出される環境変数をセットアップします。

リモート デバッガーは、開発マシンでシンボルを検索します。ビルドごとにコピーする必要はありません。

こちらのMS ビデオを参照してください。

8 ~ 9 分後に視聴を開始します。彼は、リモート デバッガーをセットアップして、開発用コンピューターのドライブ共有からシンボルを読み込む方法を示します。

幸運を!

于 2009-07-17T17:17:47.853 に答える
6

デバッグされたコードが存在するのと同じディレクトリに .PDB ファイルを配置しないと、.NET でのリモート デバッグは機能しません。

それでも VS がデバッグ用のソースを見つけられない場合は、デバッグされたコードと VS プロジェクト ソースが同じバージョンではありません。解決策は、プロジェクトを再構築して再デプロイすることです。

于 2008-09-30T07:21:10.137 に答える
5

0xE0434F4Dは、CLR(つまり、マネージコード)の例外です。認証を使用してリモートデバッグを実行し、マネージコードのデバッグを選択する必要があります。または、一部のデバッガー拡張機能を使用して管理対象の例外情報を抽出することもできますが、少し手間がかかります。

参照:

壊れている場合は...

于 2008-09-30T06:34:27.067 に答える
4

上記の回答は正しいのですが、デバッグ中のアセンブリでビルドされた PDB がリモートの場所にあり、ピックアップされていない場合に遭遇しました。TFS またはデバッグ シンボルの公開をサポートする別のビルド メカニズムを使用している場合は、それを行うことをお勧めします。次に、Visual Studio の [オプション] > [デバッグ] > [シンボル] で、その場所を [シンボル サーバー] オプションに追加して、一致するシンボルが見つかったときにいつでもそれらのシンボルを読み込むことができます。

これにより、動的に呼び出されたアセンブリ (アセンブリでシンボルを発行するだけでは、私の人生で動作することができなかったもの) であっても、私が書いた実行中のものの近くをデバッグすることができました。とても便利な機能をぜひご活用ください!

于 2013-12-12T21:02:44.907 に答える
4

1800 情報は正しいです。マネージド コードをデバッグするには、Windows 認証を使用してリモート デバッグを行う必要があります。そうしないと、マネージド アセンブリのシンボルを読み込むことができません。これを認証で機能させるには、特に、両方のマシンで同じパスワードを持つローカルアカウントが必要になるため、かなり注意が必要です。この質問とみんなの答えは、それを機能させるのに非常に役立ちます。

Visual Studio (VS2008)、Windows フォーム アプリケーションでのリモート デバッグ

于 2009-10-14T04:34:45.837 に答える
3

同じ問題がありました。msdn フォーラムで回答を見つけたので、ここに正しい回答をコピーして貼り付けます。

正しいバージョンの msvsmon.exe を使用していることを確認してください!!! それだけです!C# アプリケーションのリモート デバッグ中に同じ問題が発生しました。サーバーは Windows Server 2008 64 ビットを実行しているため、私は x64 msvsmon.exe を使用していましたが、アプリケーションは x86 用に作成されていたため、この迷惑なエラーを取り除くために x86 バージョンの msvsmon.exe を実行する必要がありました。他に何も必要ありませんでした。アプリケーションのターゲット アーキテクチャに対応するバージョンの msvsmon.exe を実行するだけです ^_^

于 2011-05-18T06:24:13.870 に答える
2

カスタムビルド構成を使用しているときにもこれに遭遇しました。( Debug ではなく DEV )

これを修正するために、Project Properties-->Build-->Output-->Advanced 設定を変更し、Output-->Debug Info 設定がfullまたはpdb-only であることを確認しました。通常、デフォルトのリリース構成はnoneに設定されています。

于 2014-12-27T17:49:34.093 に答える
1

Tools->Options->Debugging->Symbolsに移動し、実行可能ファイルの .pdb ファイルへのパスを追加します。ローカル マシンのパスは正常に機能しました。

于 2016-07-11T16:31:58.343 に答える
0

ドキュメントによると、マネージド (Visual Studio 2012 を使用してリモート マシン上のマネージド Windows サービス (.net 4.5 に対してビルド) にアタッチしようとしました) の場合、シンボルはリモートマシン上にある必要があります。

そのため、シンボルをリモート マシン上に保持し (リモート マシン上のアプリケーションのモジュール/アセンブリと一致することを確認してください)、それを共有し、ローカル システム (vs が実行されている場所) からシンボル設定を介して参照しました。

注: サービスとシンボルは、2k12 + .net 4.5 Windows サービスで動作するのと同じディレクトリにある必要はありません。

詳細については:

http://msdn.microsoft.com/en-us/library/bt727f1t(v=vs.100).aspx

リンクからの抜粋:

シンボル (.pdb) ファイルの検索


シンボル ファイルには、コンパイルされた実行可能ファイルのデバッグ情報が含まれています。デバッグするアプリケーションのシンボル ファイルは、アプリケーションの実行可能ファイルがコンパイルされたときに作成されたファイルである必要があります。シンボル ファイルも、デバッガーが見つけられる場所に配置する必要があります。

•ネイティブ アプリケーションのシンボル ファイルは、Visual Studio ホスト コンピューターに配置する必要があります。

•<strong>マネージド アプリケーションのシンボル ファイルは、リモート コンピューターに配置する必要があります。

•混合 (マネージドおよびネイティブ) アプリケーションのシンボル ファイルは、Visual Studio ホスト コンピューターとリモート コンピューターの両方に配置する必要があります。

よろしく!

于 2014-04-24T09:39:17.650 に答える