ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: dbx コマンドによるデバッグ Oracle Solaris Studio 12.3 Information Library (日本語) |
mmapfile コマンドは、コアダンプに存在しないメモリーマップファイルの内容を表示します。ネイティブモードでだけ有効です。
Solaris コアファイルには、読み取り専用のメモリーセグメントは含まれていません。実行可能な読み取り専用セグメント (つまりテキスト) は自動的に処理され、dbx は、実行可能ファイルと関連する共有オブジェクトを調べることによってこれらのセグメントに対するメモリーアクセスを解釈処理します。
コアダンプに存在しないメモリーマップファイルの内容を表示します。
ここで
mmapped_file は、コアダンプ中にメモリーマップされたファイルのファイル名です。
address は、プロセスのアドレス空間の開始アドレスです。
length は、表示対象アドレス空間のバイト単位による長さです。
offset は、mmapped_file の開始アドレスまでのバイト単位によるオフセットです。
読み取り専用データセグメントは、アプリケーションメモリーがデータベースをマップしたときに通常発生します。例:
caddr_t vaddr = NULL; off_t offset = 0; size_t = 10 * 1024; int fd; fd = open("../DATABASE", ...) vaddr = mmap(vaddr, size, PROT_READ, MAP_SHARED, fd, offset); index = (DBIndex *) vaddr;
デバッガによってメモリーとしてデータベースにアクセスできるようにするには、次を入力します。
mmapfile ../DATABASE $[vaddr] $[offset] $[size]
ここで、次を入力すれば、データベースの内容を構造的に表示させることができます。
print *index