質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Q&A

解決済

4回答

11526閲覧

VisualStudioでライブラリのデバッグ時にブレークポイントが設定できなくなった

dcs

総合スコア6

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

0グッド

0クリップ

投稿2020/09/14 03:04

VisualStudio2017を2つ開いてC#のライブラリと、そのライブラリを使った実行ファイルの双方のデバッグをしています。
当初はどちらのVisualStudioでもブレークポイントを設定できていたのですが、いつのまにか、ライブラリのデバッグでブレークポイントの設定が効かなくなってしまいました。
ブレークポイントのマークが白抜き赤枠の○になっており、下記のエラーメッセージが表示されます。

「ブレークポイントは、現在の設定ではヒットしません。このドキュメントのシンボルが読み込まれていません。」

pdbファイルが壊れたのかと思い、双方のVisualStudioでソリューションのクリーン、リビルドをしてみましたが状況は変わりません。

ライブラリのソースに変更を加えた場合は、ライブラリのビルドに加えて、実行ファイルのソリューションでもビルドを実行し、ライブラリ、実行ファイル共に最新の状態になっているはずです。

実行ファイルのソリューションを使ってライブラリの中までたどれるので、ライブラリのデバッグが全くできないわけではないのですが、ライブラリのソリューションからデバッグできないのは不便です。

どのようにすれば元通りになるのか確認すべきポイントなどご助言いただけないでしょうか?よろしくお願いします。

現在の設定
ライブラリのソリューションの設定(異常動作-ブレークポイントがヒットしない)
プロジェクト→(ライブラリ)のプロパティ
開始動作→外部プログラムの開始
→(デバッグビルドされた実行ファイルのフルパス)

実行ファイルのソリューションの設定(正常動作)
プロジェクト→参照の追加→参照
→(デバッグビルドされたライブラリ)にチェック 

以上

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/14 04:47

> VisualStudio2017を2つ開いてC#のライブラリと、そのライブラリを使った実行ファイルの双方のデバッグをしています。 一つのソリューション内に「ライブラリ」のプロジェクトと「実行ファイル」のプロジェクトをつくれば問題は解決するうえに、開発も容易になると思うのですが、そうしない理由があるのでしょうか?
dcs

2020/09/14 05:20

確かにおっしゃる通りなのですが、同じライブラリを使用するアプリを同時並行で複数開発しているので、便宜上分けています。 最初から動かないのであれば今のやり方がそもそもやってはいけないやり方なのだというのも納得できるのですが、途中から動かなくなったというのが引っかかっています。 とは言うものの、ひとつのソリューションにまとめてみるというご提案も試してみようと思います。
退会済みユーザー

退会済みユーザー

2020/09/14 05:28 編集

> ライブラリのソースに変更を加えた場合は、ライブラリのビルドに加えて、 ・・・と言うことが必要になるのですよね? であれば、「ライブラリ」の開発は完了してないと理解したのですが? それなら "一つのソリューション内に「ライブラリ」のプロジェクトと「実行ファイル」のプロジェクト" とするべきと思ったのです。 そうすれば、 > ライブラリのソースに変更を加えた場合は、ライブラリのビルドに加えて、実行ファイルのソリューションでもビルドを実行し、ライブラリ、実行ファイル共に最新の状態になっているはずです。 ・・・と言うのは Visual Studio 任せで済むはずですから。
dcs

2020/09/14 05:54

おっしゃっていることは理解できます。試しにライブラリのソリューションに実行ファイルのプロジェクトを既存のプロジェクトとして追加してみましたが、結果は同じでした。それどころか個々のプロジェクトのビルドは問題なくできるものの、ソリューションをビルドすると名前空間が見つからないとか謎のエラーが出てきたので、次は、新規プロジェクトで追加してみます。ソースをコピーして設定をやり直したら正常に動く可能性が高いでしょうから。
退会済みユーザー

退会済みユーザー

2020/09/14 05:57

> 結果は同じでした。 それは単に設定に問題とか、何か見当違いのことをされているのが原因ではないかと思います。
dcs

2020/09/14 06:26

だと思います。なにが見当違いなのかを知りたくて質問していますので。新規プロジェクトで追加したら動作しました。原因がわからないまま解決したということになりそうです。
退会済みユーザー

退会済みユーザー

2020/09/14 06:28

> 新規プロジェクトで追加してみます。 ご存じかもしれませんが、ポイントを回答欄に書いておきます。質問に対する直接の回答ではないですが、画像はここには貼れませんのでご容赦を。
退会済みユーザー

退会済みユーザー

2020/09/18 00:50

質問者さん、無言になってしまいましたが、結局どうすることにしたのか書いてください。考え中なのかもしれませんが、第三者にとっては放置しているように見えます。結論が出ていたらそれを書いてクローズしてください。
dcs

2020/09/18 06:16

失礼しました。この質問はクローズさせていただきます。
guest

回答4

0

自己解決

原因についてはなにも解決していないのですが、デバッグはできる状況になっているので解決済みとします。
ブレークポイントがヒットしない状況があったのは確かなのですが、現状は、デバッグ開始直後にブレークポイントがヒットしない表示(白抜き赤枠の○)になるものの、ボタンを押して処理を開始すると、ブレークポイントが赤丸になってヒットする表示になり、ブレークポイントの該当箇所できちんと停止するようになっています。
開始直後に白抜き赤枠表示になるのは、アプリの処理をTask.Run()で別スレッドとして開始するためなのかもしれませんが、推測の域を出ていません。
ブレークポイントがヒットする場合にも開始直後に白抜き赤枠に変わってしまう状況で条件を切り分けようとしていたので、ブレークポイントがヒットするケースとヒットしないケースを正しく切り分けできていないということになります。
本来であれば調査をやり直すべきですが、現時点でブレークポイントが使えており、実質困っていないので、
この質問は閉じさせていただきます。

投稿2020/09/18 06:18

dcs

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

全然関係ないかもしれませんが,

実行ファイルのソリューションの設定(正常動作)

プロジェクト→参照の追加→参照

これの参照プロパティ内の「ローカルコピー」の設定が何かの拍子に変わった,といったことはないでしょうか?
(例えば,以前はfalseだったのがtrueになったとか?)

投稿2020/09/14 08:22

fana

総合スコア11708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dcs

2020/09/14 08:36

ありがとうございます。これは関係なかったようです。
guest

0

新規プロジェクトで追加してみます。

ご存じかもしれませんが、ポイントを以下に書いておきます。質問に対する直接の回答ではないですが、画像は質問へのコメント欄には貼れませんのでご容赦を。

同一ソリューションの中にライブラリ LibraryA と、それを利用するアプリ Mvc5App の 2 つのプロジェクトを配置。Mvc5App の参照設定に LibraryA を加えると、LibraryA と Mvc5App の依存関係が自動的に生じます。

イメージ説明

上の画像のように、Mvc5App を右クリックして出てくるコンテキストメニューから「ビルドの依存関係(B)」でそれを見ることができます。

プロジェクトの依存関係

イメージ説明

プロジェクトのビルド順序

イメージ説明

あとは Visual Studio にお任せで済むと思います。

投稿2020/09/14 06:38

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dcs

2020/09/14 08:37

ありがとうございます。参考にさせていただきます。
guest

0

このへんは確認されたでしょうか。
Visual Studio デバッガーでのブレークポイントのトラブルシューティング

あと、ビルド時に出力されたファイル等を一度全て削除して、リビルド後に実行してみるとどうでしょう。

投稿2020/09/14 04:09

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dcs

2020/09/14 05:22

推していただいた内容は確認済みですが解決には至りませんでした。また、ソリューションのクリーン実行時に、ビルドたフォルダー内のファイルが削除されたのは確認しております。
退会済みユーザー

退会済みユーザー

2020/09/14 06:37 編集

新規プロジェクトで作成し直して正常動作するのであれば、双方のプロジェクトファイルの内容を比較して違いが無いか確認すると何か分かるかもしれません。
dcs

2020/09/14 08:38

ありがとうございます。なにか差異があるはずなんですが、先入観のせいかなかなかみつかりません。落ち着いて考えてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問