のどかな日曜の昼下がり。同僚から「緊急障害。x64 Solarisのシステムがパニックでダウンしたからダンプの解析よろしく」との電話。今までSPARCのダンプしか見たことなかったけど、初のx64 Solarisのダンプ解析。
手元にx64 Solarisシステムがなかったから、会社のLabに行って空いてるマシンにSolaris 10 5/09 (update 7)をインストール。SunのサイトからSolaris CATをダウンロードしてインストール。一通り解析環境が整ったところで解析開始。パッと見はSPARCと同じなんだが、スタックトレースを見ても各関数の引数が表示されない(mdbで$CとかSCATでstackコマンドとか)。なんでだろ?と思って調べてみると、どうやらx64ではアドレスが表示されないから、disassembleしながらレジスタの値を一個一個追っていかないとダメなそうな。SPARCは当然だけど、x86ではちゃんと表示されるらしい。
Intelのサイトで、Intel 64のBasic ArchitectureとInstruction Set Referenceのマニュアルと格闘しながら解析すること7時間。終わってみれば既知障害と判明したんだが、もうくたくた。久しぶりにない頭をいっぱい使って仕事した気がする。でもいい経験になったのでよしとしようか。
Linuxもそんなもんよ