デバッガに打ちのめされた
IDE最強
gdbに触れたことはあるものの、積極的に使っていくほどではなかった。
どうせ自分が書くプログラム程度ならprintデバッグで十分だろう、と。
最近ICPCに向けて研究室でもプロコンが盛んになってきている。
ついさっきまでゼミの課題であるTopCoderの問題に取り組んでいた。
最初は単純にどう書いたらいいかわからずウンウンやっていた。
自前で書いたやり方がどうも違う気がして仕方なく蟻本を開いた。
アルゴリズムの書き方はわかったけど、どうにもおかしい。エラーがとれない。
それも何か奇妙な値のとり方をしている。どこか実装をミスったか。
奇声をあげながらTypoを探していると同期がやってきた。
彼には既に「その問題はintじゃあふれるよ」とのアドバイスを受けていた。
変なエラーが治らない、一部だけ通って一部だけ通らない、と助けを求めると、
「longにしたのか、桁あふれしてるんじゃないか」という。
いや、さっきの助言通りlong long intにした、そんなことはないはず。
そう言うと彼は「変数の中身は確認した? デバッグにVisualStudio便利よ」という。
いや、研究室用PCはMacだし。一応VirtualBoxに入って入るけど(DreamSparkという学生の特権)。
しぶしぶXcodeを使ってみることにした。使い慣れないIDEにものすごく苦労した。
「buildできない。runのボタンがない」「なにそれ(画面を見る)俺の知ってるXcodeと違う」
「ググってもよくわからない(情弱)」「プロジェクト作った?」「え、なにそれ?」「作れ」
想像以上に間抜けを晒してしまった。
でもライブラリやら何やらの依存があるきちんとしたソフト開発ならともかく、
一回問題を通すためだけに書き捨てるプロコン用のコードにもいちいちプロジェクトを作るのは
なんだか無駄が多いような気がしてならない。あまり好きになれない。
プロジェクトなしに生のソースをそのままコンパイルして実行したいのだけど。
あ、ちなみにエラーは桁溢れでした。
まさかlong long intが溢れるとは思ってもいなかった。
結局何から何まで彼の言う通りだった。
脱Emacs? まさか
そんなことがあって、「Emacsでコード書くのやめたほうがいいのかな」と少しへこんだ。
だが、ぐぐるとEmacsとgdbの連携はなかなか悪くないらしい。
周りの人は皆GUIが好きだと言うが、僕はCUIが好きなのでこっちのほうを覚ることにしよう。
とりあえず、まずはprintデバッグからの脱出、というところか。