Qemuをハックするために,QemuをXcode上コンパイル,実行出来るようにする. 以下が手順.
- XcodeでCreate a new Xcode Projectを選択
- Emptyを選択
- プロジェクト名を決める
- プロジェクトのメタ情報を格納する(.xcodeprojファイル)を選択
- Xcode上でQemuのディレクトリごと,Drag & Drop
- 上部メニューのqemu-1.7.0(Drag&Dropしたフォルダ名)から,Edit Schemeを選択
- InfoタブのExecutableで,Runボタンを押したときに実行するバイナリを指定.今の場合qemu-system-x86-64
- 同画面のArgyumentsタブの”Arguments Passwd On Launch”で,実行ファイルに与える引数を指定.例えば「-fda helloos.img」
このままだと,OSのシグナルでブレイクしてしまい,起動するまでひたすらクリックを繰り返すことになるので,Symbolic Breakpointを設定する.
- 上部メニュから,Debug->BreakPoints->Create Symbolic BreakPointを選択.
- Symbol名にqemu_main(この関数の中でシグナルが発生することが分かっているため)を入力
- Add Actionをクリックし,表示されたテキストボックスに,「process handle SIGUSR1 -n true -p true -s false」を入力.そして,Automatically continue after evaluationgにチェックを入れる.
- さらに同じ手順でもう一つSymbolic BreakPointを作成し,「process handle SIGUSR2 -n true -p true -s false」(1と2が違うだけ)を作成
以上でブートし,breakもできるようになるはず