examine

Examine memory: x/FMT ADDRESS.

o(octal), x(hex), d(decimal), u(unsigned decimal), t(binary), f(float), a(address), i(instruction), c(char), s(string) z(hex, zero padded on the left)

b(byte), h(halfword), w(word), g(giant, 8 bytes)

Analiza symboli

Tekst zmiennej łańcuchowej jako ASCIIZ:

x/1s &variablename

Osiem bajtów od adresu zmiennej:

x/8x &variablename

64 bajty bufora buf, pokazane jako szesnastkowe liczby 32-bitowe

x/64xw &buf

Po rejestrach

x/1s (char*) *($r1)

Analiza stosu

Adres ze stosu:

x/1a $rsp+8
x/1a $sp+4

Wskaźnik na wskaźnik - na przykład argumenty z linii poleceń przekazane adresami na stosie:

x/1s *(char**)($rsp+8)

Wskaźnik (rejestr) na wskaźnik (stos) na wskaźnik (tablica łańcuchów):

x/1s **((void***)($sp+0x1c))
x/1s *(*((char***)($sp+12)) + 3)

print

Wartość rejestru - zazwyczaj zbędne bo zwykle IDE wyświetla, alternatywa do “info r”:

p $rax

Pewna liczba bajtów jako znaki:

p (char[37]) *($rdi)
p (char*) *($r2)