最近、コンパイラを作ろうとチャレンジしている。コンパイラは基本的にアセンブラコードを出力する。その結果が意図通りに動いてテストに通れば良いが、開発中はそうならない。このアセンブラ出力が意図どおりかどうかをデバッグすることになる。ただし、コンパイラが自作でヘボいので、それが出力するアセンブラは、ソースコードデバッグができない。デバッグ情報が無い実行ファイルをデバッグするのと同じ状況になる。そんな状況でよく使う gdb コマンドをまとめた。あんまり細工していない、素のgdbコマンドを使う助けになると思う。 組み込みRustを書いていた時も、ターゲットにビルドされたバイナリを解析するために、素のgdbを使うことになった。そのような時にも gdb の使い方は役に立つ知識となる。 起動 ターゲットプログラムの実行 (gdb) run ターゲットプログラムを実行する。 (gdb) run arg1 a