未来のいつか/hyoshiokの日記 このページをアンテナに追加 RSSフィード Twitter

2008-08-24

gdb を emacs から使う

アプリケーションの開発時にはデバッガーを使うのはあたりまえだろう。そのデバッガーを使えなくて何がプログラマだ、くらいの事は思うのだけど、世のプログラミング言語の入門書にデバッグの仕方もましてやデバッガーの使い方も載っていない。

その隙間を誰がうめるのか。じゃあ、わたしが埋める。埋めてみた。うまくいったかいかないかは分らないがともかくやってみた。

プログラミングキャンプである。若いプログラマ志願者と一緒になって4泊5日のブートキャンプである。鬼軍曹がびしびし鍛えあげるブートキャンプである。

デバッガーを上手に使えなければ戦場で討死する。死ぬな。生きろ。

デバッガーの使い方を教えるのは、戦場に行く前の最初の一歩だろう。防弾チョッキヘルメットくらいの役には立つ。もし日本のプログラミング現場で、デバッガの使い方を教えていないとしたらプログラマとしてどのように生きていくのかを知らない人々によって、その現場が支配されているということに他ならない。

誰かが書いたプログラムデバッグするというのがプログラマ現実である。自分がスクラッチから書いたものをデバッグするほど簡単なものはない。現実はそうではない。誰かが書いた正直どうかと思うようなスパゲティを泣きながらデバッグするのが現実である。

しかし本物のプログラマはそんなことにはびくともしない。いとも簡単に他人のコードをあやつる。理解する。ハックし、改良する。

当り前にプログラムを動かし、当り前にデバッグする。流れるようにコードを読み、いとも簡単に動かす。

その匠の技を盗みたい。そのように強く願ってプログラマとして四半世紀生きてきた。もちろん今でも変わらない。

そしてプログラミングキャンプだ。デバッガの使い方は絶対はづせないキャンプ講義の一つだ。自分以外だれも手をあげなかったからわたしが講義した。

デバッガを使えなくてどうやってプログラマとして生きていくのか。道具を使いこなせなくて何がプログラマだ。そう強く思う。

職人だったら包丁を研ぐ。自分が使う包丁は自分で研ぐ。当り前の話ではないか。

gdbの使い方ではない、デバッガを使うということを、どのように使うということを知らせなければいけない。


Emacs環境」の伝承も?

 余談になるが、フリーソフトウェアの標準デバッガgdb」の使い方を教える吉岡氏の授業で、吉岡氏はgdbコマンドラインからではなく、Emacsエディタをいったん立ち上げてから呼び出していた。それだけ見ても吉岡氏が「Emacs環境」派だということがわかるが、gdbという固有のコマンドの使い方だけでなく、そういうフリーソフトウェア流の考え方そのものが伝わっていくとさらに面白くなるかもしれない。

プログラミングには仲間がいて、そして孤独である 4泊5日のプログラミングキャンプ学生たちが得たものは? http://codezine.jp/article/detail/2962?p=3

デバッグの方法の資料 http://blog.miraclelinux.com/yume/files/progcamp_debug_080814_J_hyoshiok.pdf

hayamizhayamiz 2008/08/24 11:57 Emacsからgdbで、昔こんな動画をとったのを思いだしました。 http://zoome.jp/hayamiz/diary/1/

hyoshiokhyoshiok 2008/08/24 12:08 hayamiz さん、動画いいですね。こーゆー動画があるとわかりやすいです。【急募】動画の作り方。

androidzaurusandroidzaurus 2008/08/24 17:15 スクリーンキャストかしら。 http://ja.wikipedia.org/wiki/スクリーンキャスト

hayamizhayamiz 2008/08/25 08:55 recordMydesktopってソフトがよいかんじです。
http://d.hatena.ne.jp/hayamiz/20080221/1203541618

ysatoysato 2008/08/25 09:33 一年前の話を思い出しました。

個人的には
info registers
とか
x/i $pc
とか欲しいなあとか思ったりしますが。
時間足りないか。

wakatonowakatono 2008/08/31 00:32 どうも今年は、やること多すぎて鬼軍曹度が低めでしたw>オレ
その分チューターが、鬼軍曹度高めだった気がしますが…伝統は引き継がれる?

…来年はがんばろう(ぇ?