GDB: Список всех отображенных областей памяти для аварийного процесса

У меня есть полный дамп ядра мертвого процесса на машине Linux x86 (ядро 2.6.35-22, если это важно), что Я пытаюсь выполнить отладку в GDB.

Есть ли команда GDB, которую я могу использовать, которая означает «показать мне список всех областей адресов памяти, выделенных этим процессом?» Другими словами, могу ли я выяснить, что все это возможные допустимые адреса памяти - это то, что я могу изучить в этом дампе?

Причина, по которой я спрашиваю, заключается в том, что мне нужно искать во всей куче процесса определенную двоичную строку, и чтобы использовать команду find , мне нужны начальный и конечный адрес. Простой поиск от 0x00 до 0xff .. не работает, потому что find останавливается, как только он встречает адрес, к которому он не может получить доступ:

(gdb) find / w 0x10000000, 0xff000000, 0x12345678

предупреждение: невозможно получить доступ к целевой памяти по адресу 0x105ef883, остановка поиск.

Поэтому мне нужно получить список всех читаемых адресных областей в памяти, чтобы я мог искать их по одной за раз.

(Причина, по которой мне нужно сделать , что - это то, что мне нужно чтобы найти все структуры в памяти, которые указывают на определенный адрес.)

Ни один из не показывает mem , показывает proc , info mem , info proc похоже делают то, что мне нужно.

50
задан Crashworks 16 April 2011 в 16:14
поделиться