e2_studioでブレークポイントが設定できなくなる

e2_studioでRXマイコンの開発をしています。

デバッカ―にてブレークポイントが設定できない現象が起きます。

ソースファイルが大きいとなるような気がするのですが不明です。

ファイルを分割したり、小さいファイルのソースには、ブレークポイントが設定できます。

(特定のソースファイルのみできない)

このような現象、ご経験ありますでしょうか。

Parents
  • Cソースの場合、コンパイラで最適化しているとお尋ねの現象が発生することがあるようです。
  • 早々のレスありがとうございます。
    最適化レベルは0にしています。
    症状としては、
    ソースファイルの折り畳み機能も使えなくなります。
    ⊕、⊖などの表示もされません
    アドレスは表示されますし、動作もしています。
    アドレスがある場所にブレークポイントを設定しようとWクリックしても
    無反応です。

    追伸
    NoMaY様、プリプロセッサ―の件もよくわからない状態で保留しています。
    エラーになるわけではなく、依存関係の更新等をしても変わりませんでした
    ただ、しばらくたって、見てみるとOKになっていたりするので、よくわからない状態です。
Reply
  • 早々のレスありがとうございます。
    最適化レベルは0にしています。
    症状としては、
    ソースファイルの折り畳み機能も使えなくなります。
    ⊕、⊖などの表示もされません
    アドレスは表示されますし、動作もしています。
    アドレスがある場所にブレークポイントを設定しようとWクリックしても
    無反応です。

    追伸
    NoMaY様、プリプロセッサ―の件もよくわからない状態で保留しています。
    エラーになるわけではなく、依存関係の更新等をしても変わりませんでした
    ただ、しばらくたって、見てみるとOKになっていたりするので、よくわからない状態です。
Children
  • 折りたたみ機能が使えないのは”scalability mode”(大きなファイルを扱う時に重くなりそうな機能を省略する)に切り替わっているからだと思います。
    ファイルを開き直すとscalability modeに切り替えるかを聞いて来るので、そこで「いいえ」を選べばまた折りたたみが使えるようになるのではないでしょうか?

    追記:scalability modeに入るとブレークも張れなくなるみたいです。
    ウィンドウ→設定のC/C++→エディター→Scalabilityの設定画面でEnable scalability mode ... の行数を増やすかscalability modeで行う制限項目を全部offにしてみてください。

     

    もし折りたたみができるようになってもなおブレークポイントが張れないなら、エディタに割り当てるメモリを増やすなど、また別な設定が必要なのかもしれません。

  • ほや様
    ご助言ありがとうございます。
    やってみましたがうまくいきませんでした。
    折り畳みが使用できないソースは、3000行ほどで、設定では5000行以上でscalability mode
    になるとなっていました。念のため、10000にしてみましたが駄目でした。
    メモリー不足でしょうか?、やはり、行数が多すぎるかな・・
  • ほや様
    やはり、scalability modeになっているのではないかと思い、メモリ割り当て関連の設定をいじれば変化しないかと思いいろいろやってみましたところ。
    インデクサーの設定を触ると折り畳みが使用できるようになり、ブレークポイントを設定できるようになることがわかりました。
    ただ、内容をいじったわけではなく、インデクサーの設定画面を開き、そのままOKボタンを押すと改善します。
    お騒がせしましたが、何とかデバックできそうです。
  • khiraoka5様

    ひとまずどうにかなったようで、何よりです。

    e2 studioに限らずeclipse/CDT環境において、
    indexerは"parser"(CDT parser)を使って関数や変数の参照関係などを調べてデータベースにし、エディタはそのデータベースを見て動いています。
    scalability modeに入った時以外にも、メモリ不足などの理由でindexerかparserが途中で処理をやめてしまった場合は同じような状態になるかもしれません。(ちなみにscalability modeの設定ではparserに制限をかけます)

    「だったらメモリ不足にならないように全部の設定を最大で持っておけば良いのでは??」 と思われるかもしれませんが、それをやってしまうと全体のメモリ(PCのメモリ全部でなくJava仮想マシンとして割り当てられたメモリ)が足りなくなるので、各所に制限を設けておき、必要に応じて設定を増やすような仕組みになっています。

    今回は設定を更新した事がきっかけで、たまたまうまく行っただけかもしれません。
    もし同じ問題が繰り返し起きる場合はindexerとscalability mode(とその下にあるparserの設定)の値を増やしてみてください。
  • ありがとうございました。