Bagaimana seseorang bisa melihat konten tumpukan dengan GDB?


106

Saya baru mengenal GDB, jadi saya punya beberapa pertanyaan:

  • Bagaimana cara melihat konten tumpukan? Contoh: untuk melihat isi register, saya ketik info registers. Untuk tumpukan, apa yang seharusnya?

  • Bagaimana saya bisa melihat konten $0x4(%esp)? Saat saya mengetik print /d $0x4(%esp), GDB memberikan error.

Platform: Linux dan GDB


Jawaban:


124

info frame untuk menampilkan info bingkai tumpukan

Untuk membaca memori di alamat yang diberikan, Anda harus melihatnya x

x/x $espuntuk hex x/d $espuntuk ditandatangani x/u $espuntuk unsigned dll. x menggunakan sintaks format, Anda juga dapat melihat instruksi saat ini melalui x/i $eipdll.


75

Menggunakan:

  • bt - lacak balik: tampilkan fungsi tumpukan dan args
  • info frame - Tunjukkan stack start / end / args / local pointers
  • x/100x $sp - tampilkan memori tumpukan

61

Anda perlu menggunakan perintah tampilan memori gdb. Yang mendasar adalah x, untuk diperiksa . Ada contoh di halaman tertaut ke yang menggunakan

untuk mencetak "empat kata ( w) memori di atas penunjuk tumpukan (di sini, $sp) dalam heksadesimal ( x)". Kutipannya sedikit diparafrasekan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.