大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Code::Blocks エラー対処とデバッグ

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2018/11/20
最終更新日:2018/11/20
カテゴリー:技術情報
タグ:

津路です。
久しぶりに、Code::Blocksを触りました。

最初の投稿において、最後のところで、実行時のエラーについて書きました。

sizer.cpp にて assert エラー


Tracebackをクリックすると、エラー個所を特定できます。この場合、wx/common/sizer.h から呼ばれる DoInsertにおいて、assertエラーが発生しています。

assert エラーのtraceback

このエラーを解消するには、WX_EXPANDというプロパティコードを削除すればよいのですが、それでは、リソースでのEXPAND Enableを無視した形になりますので、リソース側でEXPANDプロパティのチェックを外すのが正当です。
しかし、外すとwidgetの横拡張ができなくなるので、本体のsizer.cppのBoxSizerに関するスコードを触るかです。
リソースを開くと、プログラムソースが自動的に編集状態となり、WX_EXPANDはOFFになりますので、BoxSizer内ではしないでほしいのでしょう。
と、考えていると、Expandプロパティの上に、Horizontal align, Vertical alignがあり、centerがあります。これらを、Left, Topに変更して保存、ビルド&実行すると、エラーが出なくなりました。

プロパティで, alignを編集

さて、実行して、FileメニューからOpenを選び、ファイルを開きますと、上のTextCtrlに内容を表示し、下のStaticTextにファイルのパスを表示しています。
ここで、下部のパス名部分が縦に半分を占めていて、横に縮小されています。

半分ずつ占有


これを解消するには、それぞれのwidgetのproportionを編集して、占有率を変える必要があります。
デフォルト値は1です。
この場合は、TextCtrlのproportionを5にしました。また、StaticTextのalignをleft, topにして、EXPANDを有効にしました。

Proportionを編集

実行しますと、おおよそうまく表示されました。

Proportion 5にして、StaticTextのEXPANDを有効にした結果

デバッグを実行してみました。FileメニューのOpenに割り当てたeventであるOnOpenに関しては、ブレークポイントへ飛んでは来ますが、wxCommandEventのデータも含め、一切見ることができず、しかもstep inなどの機能も利用できません。原因が不明です。

    上に戻る