デバッグにNetBSDカーネルを使用していますがgdb
、アドレスがあるメモリ領域に関する情報を表示できればと思います。私は主にメモリページの権限とここに含まれるメモリページのサイズを見つけることに興味があります(質問の後半が意味がある場合)。
カーネルにはカーネル空間メモリ領域という概念がありますか?つまり、特定の目的のために予約された(どこかで追跡される)連続ページブロック(仮想アドレス)ですか?それとも、どのメモリブロックが論理グループに属しているかを追跡することは、各特定のモジュールによって異なりますか?
私が探しているものの例は次のとおりです。
(gdb) addressinfo 0xffffffff80e1000
Start End Offset Perm Size
0xffffffff80e0000 0xffffffff80e2000 0x1000 r--p 0x2000
この機能が存在しない場合は、GDBスクリプトがこの情報を出力できるようにカーネルにフックを追加してもかまいません。ページ権限を表示するには、少なくともGDBスクリプトにフックを追加すると便利です。