Дъмп памет в 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