2017-10-13 20 views
-1

qemuとgdbを使ってLinuxカーネルをデバッグしようとしています。問題は、gdbがブレークポイントで停止しないということです。私はそれについて調べて、kASLRをオフにすることは、kASLRがgdbを混乱させるために役立つかもしれないことを発見しました。カーネルのコマンドラインにnokaslrを追加する

- カーネルをゲストにインストールします。

+ - カーネルコマンドラインを する「nokaslr」を追加することにより、KASLRをオフにし、ゲストにそのカーネルをインストールします。

今私はそれは、コマンドラインとそれを行う方法にnokaslrを追加するために何を意味するのか分かりません。何か案が?

+0

カーネルに 'kaslr'があるかどうか確認してください。 –

答えて

2

カーネルにコマンドラインを渡す方法は、起動方法によって異なります。 -kernel-initrdオプションを使用してQEMUに直接カーネルを起動するように指示した場合、コマンドラインを指定するには-appendオプションが必要です(すでに存在する場合は、nokaslrをスペースで区切ってください)シェルの必要に応じて)。

これが当てはまらない場合、エミュレートされたBIOSが実際のカーネルをロードするブートローダー(おそらくGRUB)を起動する可能性があります。 thisによると、ブートメニューに移動するには、VMブート時にShiftキーを押しておく必要があります。もしそうなら、GRUBはユーザが(AFAIK、一時的に)編集ブートパラメータを許可します。私のUbuntu 17.04(GRUB 2.02)では、編集したいメニュー項目の "e"を押す必要があります。 linuxコマンドの後に、/boot/vmlinuz...とカーネルコマンドラインがあります。その行の末尾にnokaslrと入力し、Ctrl-xを押して起動します。

関連する問題