トップ回答者
リモートデバックでブレークポイントが効きません。

質問
-
ターゲットPCにvc_redist.x64とvs_remotetool_x64をインストールして、releaseモードのアプリを入れてmsvsmonを動かして
クライアント側は管理者権限でvisualstudioを立ち上げクライアント側でプロジェクトを立ち上げターゲットPCのアプリにアタッチは
できたのですが、ブレークポイントなどが効きません。
何か設定することが他にあるのでしょうか?
##参考にしたのは以下のサイトです。
http://www.atmarkit.co.jp/fdotnet/chushin/vsdebug_03/vsdebug_03_02.html
回答
-
gekkaさんAzuleanさんありがとうございます。
・pdbファイルは作られていました。
・ブレークポイントのところで原因がわかりますよとのアドバイス通り見てみると実行ファイルが見えないと出てきました。
そこで調べていて以下を発見しました。
https://msdn.microsoft.com/ja-jp/library/8x6by8d2(v=vs.110).aspx
プロジェクトのプロパティにて
「デバック」の起動するデバッカーを「リモートWindowsデバッカー」にする。
以下を指定する
・リモートコマンド
・作業ディレクトリ
・リモートサーバー名
・配置ディレクトリ
「構成マネージャー」にて配置にチェックを入れる
にて、VSのデバッカーからアプリを起動したり、アタッチしたり、ブレークポイントで止めるなどできるようになりました。
-
以下の条件であれば、Debug用のdllをターゲットに入れることができるのですね。 ------------------------------------------------------------------------------------------- アプリケーションのデバッグ バージョンは再配布できません。また、Visual C++ ライブラリ DLL のデバッグ バージョンも再配布できません。 アプリケーションおよび Visual C++ DLL のデバッグ バージョンは、Visual Studio がインストールされていないコンピューターでアプリケーションのデバッグとテストを行う目的でのみ、他のコンピューターにインストールできます。 ------------------------------------------------------------------------------------------- https://msdn.microsoft.com/ja-jp/library/aa985618.aspx
- 回答としてマーク saiking 2017年7月29日 2:23
すべての返信
-
考えられる可能性としては
- VCでリリースビルドした時に/DEBUGでデバッグ情報を生成しなかった(*.pdbファイルが作られていない)
- C#でプロジェクトのプロパティ->ビルド->詳細でデバッグ情報、またはVBでプロジェクトのプロパティ->コンパイル->詳細コンパイルオプションで、デバッグ情報を生成のオプションをNoneにしてデバッグ情報を生成しなかった。
- ターゲットに配置したファイルがローカルにある最新ファイルと異なっている
- プロセスにアタッチのダイアログでコードの種類の選択が、自動になってないかネイティブアプリなのにネイティブのチェックが外れている。
- プロセスにアタッチのダイアログでコードの種類の選択が、自動になってないか.Netフレームワークを使っているのにマネージのチェック(の一致するバージョン)が外れている
- 違うアプリをアタッチしてる
追記:
.NetFrameworkを使っている場合の可能性を追記
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 編集済み gekkaMVP 2017年7月28日 10:30
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年7月31日 0:33
-
コードエディター上で無効になっているブレークポイントの左側の灰色の丸にカーソルを合わせると、なぜヒットしないかの理由が出るはずなので、それも見てみましょう。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年7月31日 0:33
-
gekkaさんAzuleanさんありがとうございます。
・pdbファイルは作られていました。
・ブレークポイントのところで原因がわかりますよとのアドバイス通り見てみると実行ファイルが見えないと出てきました。
そこで調べていて以下を発見しました。
https://msdn.microsoft.com/ja-jp/library/8x6by8d2(v=vs.110).aspx
プロジェクトのプロパティにて
「デバック」の起動するデバッカーを「リモートWindowsデバッカー」にする。
以下を指定する
・リモートコマンド
・作業ディレクトリ
・リモートサーバー名
・配置ディレクトリ
「構成マネージャー」にて配置にチェックを入れる
にて、VSのデバッカーからアプリを起動したり、アタッチしたり、ブレークポイントで止めるなどできるようになりました。
-
以下の条件であれば、Debug用のdllをターゲットに入れることができるのですね。 ------------------------------------------------------------------------------------------- アプリケーションのデバッグ バージョンは再配布できません。また、Visual C++ ライブラリ DLL のデバッグ バージョンも再配布できません。 アプリケーションおよび Visual C++ DLL のデバッグ バージョンは、Visual Studio がインストールされていないコンピューターでアプリケーションのデバッグとテストを行う目的でのみ、他のコンピューターにインストールできます。 ------------------------------------------------------------------------------------------- https://msdn.microsoft.com/ja-jp/library/aa985618.aspx
- 回答としてマーク saiking 2017年7月29日 2:23