VMware Fusion を使用して仮想マシンにマスク不可能な割り込みを送信する

VMware Fusion を使用して仮想マシンにマスク不可能な割り込みを送信する

他のコンピューターよりも安価で便利なので、Mac OS X でカーネル デバッグを行うために仮想マシンを使用しています。

残念ながら、Windows の同等機能とは異なり、デバッガーを使用してカーネルを停止することはできません。カーネルを停止するには、マシンにマスク不可能な割り込みを送信する必要があります。物理マシンでは、起動時に適切なデバッグ フラグを設定し、両方のキーを押しながら電源ボタンを押すことでこれを実行できます。ただし、このキーの組み合わせは仮想マシンでは実現できません。

私は見つけたずさんな脚本仮想マシンをサスペンドし、サスペンド状態を編集して NMI が保留中であることを示すようにしてから再開しますが、これは時間の無駄のように見えます。

VMware Fusion を使用して仮想マシンにマスク不可能割り込みを送信することは可能ですか?

答え1

コマンドを使用して、変数の引数0x4にビット フラグを設定/追加できます。次に例を示します。debugboot-argsnvram

sudo nvram boot-args="debug=0x144 kext-dev-mode=1 kcsuffix=development pmuflags=1 -v"

説明どおりここ他の引数の中でも、debug=0x4フラグを使用すると、NMI でデバッガーにドロップできます。つまり、VM 上で を押していつでもデバッガーにドロップできます(何らかの理由で、上記のキーの組み合わせが機能しない場合は をCommand-Option-Control-Shift-Escape押す必要がある場合もあります)。fn

continue最終的には、ブレークポイントの設定、メモリの検査、バックトレースの出力などを行った後、カーネルの実行を再開するために入力する必要があります。

関連情報