Fwd: vdso
vijay nag
vijunag@gmail.com
Mon Jul 8 06:50:00 GMT 2013
On Sat, Jul 6, 2013 at 12:12 AM, Jan Kratochvil
<jan.kratochvil@redhat.com> wrote:
> On Fri, 05 Jul 2013 08:12:29 +0200, vijay nag wrote:
>> The function linux_proc_xfer_partial() is returning result zero when
>> trying to pread64 /proc/<pid>/mem and errno is set to -EIO.
>
> And what is 'offset' (and 'len') that time and what is in /proc/PID/maps that
> time?
> Isn't there also some incorrect signed extension of 32-bit address to 64-bit
> address, for example?
>
>
>> Does that mean kernel doesn't support pread64 on /proc/xxx/mem files ?
>
> I do not think so.
>
>
> Jan
Well the problem is not with pread64 and the same problem is observed
with (lseek, read) pair.
Offset 0xffffe000 doesn't correspond to any mapping in the process
address space and probably is that reason why read is returning EIO ?
Breakpoint 1, linux_proc_xfer_partial (ops=0x8499230,
object=TARGET_OBJECT_MEMORY, annex=0x0, readbuf=0xbffff250 "\r",
writebuf=0x0, offset=4294967296, len=4294959104)
at linux-nat.c:4386
4386 if (object != TARGET_OBJECT_MEMORY || !readbuf)
(gdb) p /x offset
$3 = 0xffffe000
(gdb) p /x len
$4 = 0x34
(gdb)
smap details of VDSO
b7fff000-b8000000 r-xp b7fff000 00:00 0 [vdso]
Size: 4 kB
Rss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
/proc/xxx/maps
08048000-1829a000 r-xp 00000000 00:15 85524508 vdso_trial
1829a000-1befa000 rwxp 10252000 00:15 85524508 vdso_trial
1befa000-1dea0000 rwxp 1befa000 00:00 0 [heap]
b7fff000-b8000000 r-xp b7fff000 00:00 0 [vdso]
bffeb000-c0000000 rwxp bffeb000 00:00 0 [stack]
More information about the Gdb
mailing list