『タイムボカンシリーズ 逆転イッパツマン』(1882)
久々に見てしまいました。今見ても面白いです。
豪さんにぞっこんのランちゃんが、イッパツマンの正体に気づいてしまった時、イッパツマンは倒されてしまいます。好きな人が目の前で殺されてしまう、ランちゃんの悲しむ姿に、子供心に涙誘われました。ショックでした、まさかヒーローが倒されるなんて。
でも、ちゃんと続きがありました。イッパツマンの正体は、当然豪さんかと思いきや、超能力で操作していたロボットだったなんて。当時の私の中ではまだ超能力ブームは冷めていませんので、イッパツマンが超能力で動いてたと知ると、どうすれば私も家にいながら、遠隔操作の自分そっくりのロボットを動かして通学できるのかと、スプーン曲げをトライしながら思いを巡らせていました。
初代のイッパツマンは、いわゆる豪さんのフロントエンドでしたが、デバッグもGDBをエンジンとするフロントエンドを操作することで、より効率的なデバッグが可能になります。今回は、フロントエンドにCGDBを使用したいと思います。
久々Raspberry Piのコマンドラインも使ってみます。
まずは、gdbとcgdbをインストールします。aptコマンドで簡単インストールできます。
pi@raspberrypi:~ $ su - Password: root@raspberrypi:~# apt-get install gdb cgdb (省略) root@raspberrypi:~#
sysvbannerのソースもインストールします。deb-srcがコメントになっているので、#を外して活かします。
root@raspberrypi:~# vi /etc/apt/sources.list deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
後は、apt-get update
root@raspberrypi:~# apt-get update root@raspberrypi:~# exit
そして、sysvbannerのソースも取得します。
pi@raspberrypi:~ $ apt-get source sysvbanner pi@raspberrypi:~ $ cd sysvbanner-1.0.15/
Makefileを編集して、GDBを使えるようにしておきます。以下の8行目のように-gオプションを追加します。
pi@raspberrypi:~/sysvbanner-1.0.15 $ cat -n Makefile 1 DESTDIR= 2 3 BIN=banner 4 SRC=$(BIN).c 5 MAN=$(BIN).1 6 7 $(BIN): $(SRC) 8 $(CC) -g $(CFLAGS) $^ -o $@ $(LDFLAGS) 9 10 install: $(BIN) $(MAN) 11 install -d $(DESTDIR)/usr/bin 12 install -m 755 $(BIN) $(DESTDIR)/usr/bin 13 install -d $(DESTDIR)/usr/share/man/man1 14 install -m 644 $(MAN) $(DESTDIR)/usr/share/man/man1 15 16 clean: 17 $(RM) $(BIN) pi@raspberrypi:~/sysvbanner-1.0.15 $
ビルドします。
pi@raspberrypi:~/sysvbanner-1.0.15 $ make
ではCGDBを使用してデバッグしましょう。
pi@raspberrypi:~/sysvbanner-1.0.15 $ cgdb banner
画面が上下に分かれて、上がソース画面、下がコマンドの画面になります。
上の画面に表示されている>マークが、現在実行まちの行を表しています。
矢印マークが短くて読みにくい場合は、arrowstyleを指定することで、長い矢印に変更できます。
quitで一旦cgdbを終了し、cgdbの設定ファイルを編集します。
pi@raspberrypi:~/sysvbanner-1.0.15 $ vi ~/.cgdb/cgdbrc
cgdbrcには以下を追加
:set arrowstyle='long'
再度CGDBを起動します。
pi@raspberrypi:~/sysvbanner-1.0.15 $ cgdb banner
矢印が長くなりましたね。
フロントエンドを使用して、ソースを常に確認しながらデバッグすれば、バグ退治も一発です。
コメント