マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

デバッグ

  • bochsでtrace-mem onしてアクセスしたメモリアドレスの確認
  • 自作x86エミュレータでもアクセスしたメモリアドレスの確認(bochsと一致)
  • Twitterクライアントを少し進める
  • 『ふつうのコンパイラをつくろう』を少し読む
  • 後輩の卒論のβ版をチェック

x86エミュレータにバグがあるのだが、カーネルに入った所ではレジスタやメモリが同じ内容になっている。しかし、その後いろいろ差がでてきた。まず考えたのが32bitモードによるModRMの処理の変化。まぁ、Prefixでも変えられるが、32bitモードになったことにより、ほとんどの場合が32bitアドレスの処理になった。それに伴って、32bitアドレス版のModRMにアクセスする回数が増え、眠っていたバグが起きたのかと思っていたが、そこは問題なさそうだった。次はレジスタでもチェックしようかと思ったが、"trace-reg on"だと"s 1000"とかやっても、1000回分レジスタをダンプしてくれるわけではないようだ。命令の度にsを入力すればいいのだが、140万命令とかやってられないので、何らかの方法で自動化しようか?というところ。さて、どの命令がバグってるのやら…。あとはTwitterクライアントを進めて、後輩の論文チェックして、『ふつうのコンパイラをつくろう』を少し読んだ。考えていることが多い1日だった