con un clic
rebrgen-debug
エラーが出たとき、挙動が想定外のときに参照する。デバッグで行き詰まったらここに戻って来ること。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
エラーが出たとき、挙動が想定外のときに参照する。デバッグで行き詰まったらここに戻って来ること。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
rebrgen の設計判断を ADR として記録するか検討する。設計方針の議論、選択肢の比較、既存判断の変更、判断理由を残す場面で使用する。
rebrgen のビルド、初期セットアップ、EBM再生成、ebmcodegen復旧、新言語ジェネレーター追加を行うときに使用する。
rebrgen のコンパイルエラー、テスト失敗、想定外の挙動を調査するときに使用する。型や構造の定義から原因を追跡するデバッグ手順を提供する。
rebrgen 内部の機能、マクロ、Context型、実装場所や構造を調べるときに使用する。開発中に関連定義やAPIの所在を確認するための知識を提供する。
rebrgen の複数言語ジェネレーターにまたがるリファクタリング、共通部分の整理、EBM構造変更の影響調査を行うときに使用する。
rebrgen のコードジェネレーターへ新機能を追加するときに使用する。共通処理と言語固有処理の配置、EBM変更の判断、実装時の注意点を提供する。
| name | rebrgen-debug |
| description | エラーが出たとき、挙動が想定外のときに参照する。デバッグで行き詰まったらここに戻って来ること。 |
エラーの文言から推測して解決しようとするな。必ず定義を読め。
コンパイルエラーの99%は定義の誤解が原因。マクロ展開のノイズに惑わされるな。
extended_binary_module.hpp)io_data の型 → size メンバーの型 → unit の定義error: called object type 'SizeUnit' is not a function or function pointer
io_data.size.unit()
~~~~^
unit() と書いたが unit はフィールドであり関数ではない。
extended_binary_module.hpp で SizeUnit unit と定義されている → io_data.size.unit が正しい。
src/ebmcg/ebm2<lang>/visitor/src/ebmcodegen/default_codegen_visitor/ や共通ヘルパー生成が期待通りに変わらない場合は再ビルドを確認:
python script/build.py native Debug
mkdir -p save
python script/unictest.py --target-runner ebm2<lang> --print-stdout > save/unictest.txt 2>&1
デバッグをしているとどうしても解決しないので「ここはこういうものだろう」と推測してコードを書きたくなることがある。でとりあえずコメントを書いてみるとあら不思議そんな気がしてくる、がこれは大間違いである。 IRレベルでどのような構造になっているか裏付けを見ることでどのような構造になっているかはわかってくる。 IRのクエリなどをうまく活用してほしい。