I'm live-debugging a process in GDB under Linux and I find it impossible to read the contents of the memory region defined in /proc/${PID}/maps
as:
3aaef123000-3aaef125000 r--p 00000000 00:00 0 [vvar]
Clearly, the r
flag in r--p
shows that it is readable, but GDB always tells me it is unable to access the contents of that memory region, e.g.:
warning: Unable to access <count> bytes of target memory at <address>, halting search.
What exactly is a [vvar]
memory region? Why can't I read its contents from GDB?
EDIT: Off-site resources which might help answer the question:
- Implementing virtual system calls - an old (October 2014) and most likely outdated LWN article article mentioning the
[vvar]
section. Didn't understand half of it. - vvar, gup && coredump - a kernel mailing list thread (March 2015) about what seems to be the same issue. Didn't understand neither.
I'd appreciate it if anyone could explain this to me in simpler terms.