How do I deference the address (examine memory) stored at label in GDB?
I've produced the example below, where I try to examine the memory address stored as a doubleword value at label file_handle
. In this case, the address is 0, but in general, it could be arbitrary. Each attempt makes x
examine address 0x401004
, and not 0x00
as anticipated.
I know I could just copy paste the address and give it to x
as argument, but I'm used to using the * operator to deference values stored in registers, e.g., x *$eax
.
How can I use the same technique to deference to address stored at label without copy-pasting it?
(gdb) x &file_handle
0x401004 <file_handle>: 0x00000000
(gdb) x *&file_handle
0x401004 <file_handle>: 0x00000000
(gdb) x *(&file_handle +0x00)
0x401004 <file_handle>: 0x00000000
Let's assume we have a program:
section .data
file_handle db "some"
...
Via x &file_handle
we examine memory by an address of file_handle
.
0x601038 <file_handle>: 0x656d6f73
If we wanna examine memory by where the content of file_handle
points to we can try:
x *file_handle
But we got an error: 'file_handle' has unknown type; cast it to its declared type
So, after casting to char (because we're dealing with db
):
x *(char *)file_handle
User contributions licensed under CC BY-SA 3.0