2012-08-15 11 views
10

Um meinen Stack in LLDB, ich verwende derzeit die folgenden anzuzeigen:LLDB - Bewerten Adresse im Register

(lldb) register read rbp --format hex 
rbp = 0x00007fff5fbff820 

dann zu sehen, die ersten 64-Bytes wachsen nach unten:

(lldb) memory read --size 4 --format x --count 16 `0x00007fff5fbff820-64` 
0x7fff5fbff7e0: 0x5fbff900 0x00007fff 0x00000000 0x00000000 
0x7fff5fbff7f0: 0x00000000 0x00000000 0x00000000 0x00000000 
0x7fff5fbff800: 0x00000000 0x00000000 0x00000000 0x00000000 
0x7fff5fbff810: 0x5fbff838 0x00000006 0x00000008 0x00000000 

I haven‘ t in der Lage zu finden, wie es zu tun, sondern ist es eine Möglichkeit, um den Ausdruck zu ersetzen:

`0x00007fff5fbff820-64` 

Mit etwas mehr wie:

`%rbp-64` 

Vielen Dank!

Antwort

12

`$ RBP-64`

Es gibt auch Abkürzung Formatierer für Speicher lesen und drucken, die wie GDB handeln. z.B.

x/16x `$ rbp`

siehe "Hilfe GDB-Format" für Einzelheiten über akzeptierte Formatierer Zeichen für x/und p /. Dies sind wirklich nur Befehl Aliase im Speicher lesen -G und expr -G.