Entry

この頃の楽しみ - WinDbg で解析祭り

2009年10月14日

ネットもつまらないし,プログラミングも作業感が募る,つまらない病の今日この頃なんですが,この頃ちと WinDbg を使ったプログラム解析にはまりつつあります。これは面白いなー。いや,別にクラッキングしてるわけじゃなくて,CPU やスタックの動きをひとつづつ見てるだけなんですが。

案内役は,以前も紹介したこちら。

Windowsダンプの極意 エラーが発生したら、まずダンプ解析!
上原 祥市
アスキー・メディアワークス
売り上げランキング: 14583
おすすめ度の平均: 4.5
3 物足りない点
5 日本語で読むWinDbg
5 リリース後のトラブル解析やデバイスドライバのデバッグに
5 初版から3か月という期間で増刷とのことで喜ばしい限りです。
5 楽しくアセンブリ

WinDbg の使い方を覚えるのに使っています。いまだにコマンドを覚え切れてないもんで。もうかなり読み込んだんですけどね。もう少し本格的にやるなら,デバッグの極意があるんですけれど,これはちと高価なので手が出ません。

Windowsデバッグの極意 ツールを使いこなして、バグハント!
Mario Hewardt Daniel Pravat
アスキー・メディアワークス
売り上げランキング: 100275

この頃は,仕事の方がだいぶ楽(暇ともいう)になってきたので,日々の業務でもなるべく WinDbg を使ってデバッグするようにしています。どうってことないバグつぶしでも,できる限りこれ使ってる。暇なときくらいしか練習できないので,いい機会です。アセンブリでデバッグすると,なんであれ,原因が論理的にはっきり分かるから気持ちいい。

実際のところ,それなりに安全なプログラミング手法なり,モジュールの構成法なりを踏まえていると,スタック破壊や STOP エラーのようなごっついバグは,滅多に出ません。ただ,これは出たときがきつくて,初めてお目にかかったときは,1日仕事になってしまいました。ある関数を通ると,別の関数の値が書き換わる原因を探していたんですけれど,こゆのは本当に場数を踏まないとできないし,結局アセンブリレベルで調べた方が早かったりします。

一方,趣味の方では,自分が書いたプログラムが実際にどういう動きをしているのかを調べてニヤニヤしています。自宅ではインテルコンパイラを使ってるので,出来上がるコードは CPU 別に最適なコードにディスパッチしてくれたりするんですけれど,かなり追っかけがいがある。ま,楽しんでできてるうちは,経験上,核心に触れていないってことでもあるんですが。

デバッグ手法でいうと,あとは,マルチコア CPU のデバッグ手法を身に付けたいところ。これはかなり切実。この頃は,あちこちでマルチコア対応のアプリケーションも増えてきたし,デバッグ手法も含めた開発手法を一通り身に付けたいところです。どうでもいいけれど,近頃は,新しい実装手法は紹介されるものの,テスティングやデバッギングまで踏まえて紹介していることはあまりない気がしています。若い子も,新しい実装手法を試したがるんだけれど,「どうやってテストしてデバッグするの?」と聞くと黙ってしまう。こっちとしては,面白そうだから採用したいんだけれども,テスティングやデバッギングが「あて勘」の域を出ない手法は,なかなか採用しづらかったりします。こゆのも含めて開発プロセスなわけで……あと,ダメだったときに怒られるのが結局あたしになるもんで……。

おっさんになるほど慎重になってしまう。それもまたアレなんだけど。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN