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

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

ただいまの
回答率

89.10%

PresentationFramework.pdbは読み込まれていません、のエラーが発生する要因について

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,165

siksmtt

score 19

発生している問題・エラーメッセージ

外部ライブラリを用いたWPFアプリケーションを作成しているのですが、マウスホイールをするとエラーが発生して困っています。
ListBoxを使っているのですが、イベントに関しては特に手を加えていません。

エラーメッセージは
「PresentationFramework.pdbは読み込まれていません」というエラーになります。
ただ出力ウィンドウを見ると外部ライブラリに関するメッセージが書かれています。

質問内容

この「PresentationFramework.pdbは読み込まれていません」は一般的にどのような場合に発生するものなのでしょうか?
エラーメッセージだけ見ると不足ファイルがあるようですが、ビルドオプションなどで解決するものでしょうか?
また調査方法などはあるでしょうか?

大雑把な質問になり恐れ入りますがご助言いただけますと幸いです。

追記1

実際に表示される画面です。表示された後の動作についてはコメントをご確認ください。
イメージ説明

また最初にこの画面が表示された時の、出力ウィンドウエラーメッセージは以下の様になっています。
全て載せることは難しいのですが、このエラーメッセージの前に「PDBファイルが見つからない。シンボル無しでビルドされた。」旨のメッセージが
数10行表示されています。

例外がスローされました: 'System.InvalidOperationException' (OxyPlot.dll の中)
例外がスローされました: 'System.Windows.Markup.XamlParseException' (PresentationFramework.dll の中)
This PlotModel is already in use by some other PlotView control.

ちなみにアプリケーションが落ちるまでデバッグを継続させようとすると、「 --- 内部例外スタック トレースの終わり ---」という出力がされます。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • dodox86

    2019/04/17 10:36

    エラーではなく、デバッグ時のただの警告で、問題の無いものだと思います。デバッグ対象のプログラムは実行できますよね? 気になるのであれば、Visual Studio の出力ウィンドウに出力されている実際のエラーや警告内容を質問文に追記してください。

    キャンセル

  • siksmtt

    2019/04/17 10:42

    dodox86様  コメントありがとうございます。いえ、警告ではなく例外として?新しいタブが生成されます。タブ内容についてはキャプチャ画像を加えましたのでご確認ください。一応この画面が最初に表示された時はアプリケーションは生きていますが、デバッグを継続しようとするともう一度同じ画面が表示され、さらに継続しようとするとアプリケーションが落ちます。実際のエラー文についても加えましたので、ご助言いただけますと幸いです。

    キャンセル

回答 2

checkベストアンサー

+3

これは、デバッガでSystem.Windows.Markup.XamlParseExceptionの例外が発生した場合に中断する指定をしているためです。
そのため例外が発生した箇所で止まっているのですが、その止まった場所が自分自身で作成したコードではなく、PresentationFramework.dllというシステムで用意されているものの中なので、今回のような表示になっています。

このエラーを解決するには、例外の詳細をのほうを見て判断するしかないと思います。

詳細のほうには、This PlotModel is already in use by some other PlotView control.と出力されています。
PlotModelは複数のPlotViewで共有できないようです。
上記内容で検索すると、Oxyplotでは1つのモデルを2つのプロットにバインドすることはでききないという情報が出ています。
これをもとに自分の実装を見てみたらどうでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/17 13:20

    ta.fu様  コメントありがとうございます。やはり自分のコードではなくdll内部で起きていたのですね。
    もちろんOxyPlotのエラーメッセージでも検索したのですが、特に該当するようなものはなかったです。
    ただListBoxとOxyPlotを組み合わせて使っているシーンが見られなかったので、そこが根本的に間違っているのかもしれないです...。
    とりあえずビルドオプションなどで回避できる可能性は低そうですね...。

    キャンセル

  • 2019/04/17 15:08

    This PlotModel is already in use by some other PlotView control
    で検索すると、githubやstackoverflowの投稿が検索されます。

    そちらのほうも覗いて見ればいいと思います。
    ただ、コントロール内でオブジェクトを再利用のためキャッシュしているため、という投稿もあるため、一筋縄ではいかないかもしれません。

    キャンセル

  • 2019/04/17 15:42 編集

    ta.fu様  コメントありがとうございます。ご提示いただいたサイトでも調べていたのですが、既に修正済みである旨もあったり、仰る通り難しそうです。
    何よりもエラーメッセージを素直に解釈したとすると、グラフの更新や生成時ではなくマウスホイールをした時に発生するのがとても不思議です。

    とりあえずListView(ListBox)で実装すること自体に問題があるのかどうかが不明なので、意見がもらえそうなStackOverFlowに投げてみます。ご丁寧にありがとうございます。助かりました!

    キャンセル

+1

Visual Studio デバッガーでシンボル (.pdb) ファイルとソース ファイルの指定 (C#、C++、Visual Basic、 F#) の記事が参考になるかもしれません。

機械翻訳されたページなので、非常に判りにくい日本語で書かれています。
画面右上にある「英語で読む」スイッチをONにして、原文(英語)で読んだほうが理解できそうです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/17 13:09

    coco_bauer様  コメントありがとうございます。一読してはいたのですがあまり理解が進まなかったので、後回しにしていました...。しっかり読み込んで確認してみようと思います!

    キャンセル

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

  • ただいまの回答率 89.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる