GDB examine memory permissions
c, gcc, gdb, linux, virtual-address-space
Solution
You can first find where `s` is pointing to:
(gdb) print s
$6 = 0x400dbc "foo"
and then find the section in which it's in:
(gdb) maintenance info sections
Exec file:
`/home/mfukar/tmp', file type elf64-x86-64.
...sections...
0x00400db8->0x00400dfb at 0x00000db8: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
...more sections...
and look for the `READONLY` flag.
Alternatively, look into `/proc/PID/maps` where `PID` is the pid of the process you're debugging and you can get with `info proc`.
Problem
I've an address in memory and I want to find out the permissions (r/w/x) of that memory address. E.g. ``` char *s = "hello"; ``` Here, the string literal "hello" is stored in read-only memory. When running the program through gdb, is there a possibility to check out the permissions for that memory address (whether only read is permitted or etc) ?