2

kgdb を使用してカーネルをデバッグしています。

私はqemu 2.11.0を使用しており、ゲストにはubuntu 16.04.3サーバーバージョンを使用しています。

カーネル 4.16.0-rc6(メインライン) をインストールし、kgdb オプション (kgdbwait kgdboc=ttyS0,115200) を指定してこのカーネルでゲスト OS を起動しました。

gdb はゲストに正常に接続できます。

ただし、ブレーク ポイントの設定は、次のエラー メッセージで失敗します。

アドレス 0xffffffff8124b170 のメモリにアクセスできません

実は以前はkgdbでカーネルをデバッグしていたのですが、カーネルのバージョンは4.8以下です。

カーネルは raw フォーマットの仮想ディスクです。

raw フォーマットの仮想ディスクをゲストにマウントして、このカーネルをコンパイルしてゲストにインストールし、raw フォーマットの仮想ディスクをホストにマウントして、gdb で vmlinux ファイルを開きました。

過失はありますか?

4

1 に答える 1

2

この問題を解決しました。

KASLRが原因でした。

これが解決策です。

于 2018-03-20T08:02:49.673 に答える