GDB - egzaminowanie pamięci
Przykłady użycia poleceń GDB do analizy pamięci
Created Nov 16, 2022 - Last updated: Nov 16, 2022
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
Analiza stosu
Adres ze stosu:
x/1a $rsp+8
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))
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)