8/16(日) デバッガよりデパガが好き

すまん。タイトルには意味はない(笑)

思うところがあって、lynxをデバッガで追いかけて中を読んだりしていたんだが、やはりど〜にもこ〜にもgdbは使いにくい… muttの文字化けの件にしてもそうだが、コンソール全面を使うアプリを、これまたコンソールを使うデバッガで普通に見ようというほうがいかんのだが。

Xで動くプログラムをxxgdbで追う、というのは、たとえxxgdbが単なるgdbのラッパであるとはいってもやはり、ずいぶんとイージーな印象だ。まぁ、自分でWindowを開いてくれる物は、だが。

結局のところ、X上でもコンソールベースなlynxやmuttなどのアプリを追いかけようとすると、あらかじめrxvtなりでターゲットのアプリを起動しておき、pidを確認してからxxgdbを起動してプロセスにアタッチするという形を取らざるを得ない(と思う)が、それだと普通は見ているプロセスの中のキー入力待ちのループあたりから追うことになるので、それ以前の部分で子プロセスをガンガンにforkしちゃってたりすると、もう一体どこを見ているやら、ということになってしまう。

確かに、アタッチしてしまえば、ほとんどなんでも覗くことができるってのは、極めて強力なんではあるが、今回のような場合は自分でmakeしたもんを自分で追いたいワケだから、もうちょっとオレみたいなズボラ〜系な人間にも歩みよってもらいたいもんではあるよな。

ったく、ターゲットの入出力ぐらい、あらかじめ別のターミナルに割り付けるくらいできねぇのかなコイツ、などとブツクサいいながらman xxgdbなどしてつらつら眺めていると、そのものズバリなコマンドが!

xxgdbのコマンド入力窓でiowin と呪文を唱えると、デバッグ対象のプログラム用のターミナルを開けてあげるよんなどとかるぅ〜く書いてあるでわないか。なんと!知らなかったのはおれだけくぁぁぁぁぁ!?などと思いつつ、iowinと打ちこんでみた。

そしたらあんた。ちょっとそこに座ってよくお聞き。

新しいターミナルがバーンと開いたと思うだろ? ちっちっち。RedHat 5.1にあらかじめ含まれているxxgdbは、この機能をサポートしていなかったのだ!

そりゃねぇだろ〜? ったくしょうがねぇな。なんでも、よくよくman xxgdbを読み直すと、このiowinの呪文を使えるかどうかってのは、xxgdbのコンパイル時に決めるもんなんだとさ。まぁ、言ってみれば生まれつきの才能だな、才能。RedHat 5.1に付いてくるxxgdbには才能がなかったのだ(笑)

さらに、ただiowinな才能がないばかりでなく、どうもデザインが古くさい。確か、以前Slackwareでxxgdbを使っていたときは、ソースを見る窓、コマンド入力窓、変数を見る窓、などなど、小さい窓が複数にわかれていて、自由にレイアウトできたはずなのに、赤帽のxxgdbってば、それらが全部、弁当箱のように一つの大窓に収まっちゃってて細かく大きさの調整ができないのだ。おかず、ごはん、お漬物って感じで(笑) しかも、この弁当箱モードだと、一つに固まっちゃってるせいもあって、妙にデカイのだ。場所食うの。ノートPCの800x600に収まらないので、使い勝手悪すぎ。

そしたらこれもちゃんとドキュメントがあった。自分でmakeし直すつもりでソースを全部展開したら、README.NEW_INTERFACEなどというファイルがそっと含まれていて、それの言うことにゃ、弁当箱モードをやめたいときは、ちゃんとその旨を指定してコンパイルせぇよ、だってさ。そう。つまり、ウチの赤帽xxgdbは、才能がないだけじゃなくて時代遅れだったのだ。

で、いろいろいじってmakeし直し、才能があって時代遅れじゃないxxgdbに生まれ変わらせてやったのだ。起動してみると、おぉ!確かにお弁当箱じゃなくなっている。小さな窓に分割されてノートPCでもグ〜だぜ。さて、いよいよiowinの呪文を唱える時がきた。いけ!iowin

だがダメだった(-_-#)

確かに新たにターミナルを開いてくれるようにはなったよ。うん。それはそれで具合がいい。これでコンソール入出力を使うアプリもガンガン追っかけることができるぜ!と一瞬はうれしかった。だが、日本語は化け化けだわ、入力もできないわ、で実質的にデバッグできないに等しいのだった…

なんでぇ〜?と思ってさらにxxgdb自身のソースを見てみて脱力したのだが、なんと、iowinの呪文を唱えると、単にxtermを開くだけだったのだ。しかも、開くターミナルがxtermだってことを、リソースで持ってるんじゃなくて""でくくってプログラムに直接書いてあんぞ(-_-#)

誰だよこんなソース書いたのわ。ヘッダを読むとPierre Willardと書いてある。だめだろ>Pierre 決め打ちすんなよ。何のために書き換えできるリソースがあるのかよ〜く考えろ。フン。

などといいつつ、xtermという文字列を片っ端からrxvtに書き換えた。能書きこいたくせに、オマエも直接書いてるやんけ、って?いいんだよオレは(笑)ったく細かいことを気にすんなよ(大笑い)

さぁ!もう一度だ、iowin

おぉ!今度はもうべりべりグ〜だぜ。日本語もサクサクねサクサク。思わずxxgdbでlynxを覗きながら、そのlynxで掲示版に書き込みしちまったよ(笑)

あれ?結局、xxgdbをアウアウいじっていただけで、何一つデバッグしてねぇや。わはは。ま、いいか。明日やりゃあ。わははは。

メール 前へ 次へ 戻る