Дамп памяти в lldb

Как указано на этом сайте. Когда я хочу сделать дамп памяти в gdb.

Начальная точка — 0x1000, а конечная — 0x2000.

Для lldb начало 0x1000 и конец 0x1200 .

Есть ли причина для этого или это просто ошибка?


Главный вопрос: как сделать дамп области памяти с 0x1000 по 0x2000 в lldb?


person user3192959    schedule 14.01.2014    source источник
comment
не кажется таким вопросом   -  person tristan    schedule 14.01.2014
comment
@tristan Хорошо, тогда как сбросить память с 0x1000 до 0x2000 с помощью lldb   -  person user3192959    schedule 14.01.2014
comment
NB: исправлен пример на веб-странице lldb-gdb.html.   -  person Jason Molenda    schedule 14.01.2014


Ответы (1)


Следующее работает отлично для меня:

    (lldb) memory read --outfile /tmp/mem.txt 0x6080000fe680 0x6080000fe680+1000

Сбрасывает 1000 байт памяти с заданного начального адреса в шестнадцатеричном формате в /tmp/mem.txt. Используйте --binary для двоичного формата.

Вы также можете использовать «count», чтобы указать, сколько байтов вы хотите сбросить:

    (lldb) memory read --outfile /tmp/mem.txt --count 1000 0x6080000fe680

Если вы находитесь в среде отладки Xcode и имеете переменную с именем «note1», вы также можете использовать:

    (lldb) memory read --outfile /tmp/mem.bin note1 note1+100

Чтение в фактическом местоположении 0x1000 не работает в Xcode для меня («ошибка чтения памяти»), должно быть каким-то образом защищено.

Что касается разницы между 0x1200 и 0x2000 в документации, я думаю, что это просто небольшая ошибка.

person DonCristobal    schedule 14.01.2014
comment
Также полезно отметить, что вам не нужно вводить полные команды lldb — достаточно, чтобы они были однозначными. memory read --outfile /tmp/mem.txt --count 1000 0x6080000fe680 также можно ввести как m r -o /tmp/mem.txt -c 1000 0x6080000fe680. Важно использовать длинную форму команд в примерах для ясности, но мне также нравится демонстрировать самые короткие уникальные формы, которые люди могут использовать, чтобы они не думали, что им нужно вводить все это изо дня в день. Кроме того, не забывайте, что gdb compat mem read cmds, например. x/32gx $pc, когда речь идет о чтении памяти из строки lldb cmd. - person Jason Molenda; 09.02.2014
comment
бинарный формат. чтение памяти --binary --outfile /tmp/bkey -c 162 0x165b35f4 - person KunMing Xie; 25.03.2017