This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Fwd: vdso
- From: vijay nag <vijunag at gmail dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: gdb at sourceware dot org
- Date: Mon, 8 Jul 2013 12:20:49 +0530
- Subject: Re: Fwd: vdso
- References: <20130703084207 dot GA598 at host2 dot jankratochvil dot net> <CAKhyrx9xNG6xEtVf51ig-dC93=C9vrzgi98RzjA4QLyfuE+hkw at mail dot gmail dot com> <20130703090259 dot GA1854 at host2 dot jankratochvil dot net> <CAKhyrx8nSOR4Sq2K3XbyVytUnQMyn42Xpbo1aX0=Df4r5Pebtw at mail dot gmail dot com> <CAKhyrx_9fSc5wMaXaX76bFOPJbuVFttDNJ-YDa28wz5obJHQyQ at mail dot gmail dot com> <20130703144857 dot GA27367 at host2 dot jankratochvil dot net> <CAKhyrx8GCE7bYeZe9gnNT_aZN74oM--kd_oZr1+cjqt67oOzVQ at mail dot gmail dot com> <20130704061052 dot GA19661 at host2 dot jankratochvil dot net> <CAKhyrx8pAR9aKC1=-_HnwJ=ssb4B7LGUYM6CRqxY68xx+duprA at mail dot gmail dot com> <CAKhyrx_aX76L70XGWes+M2qsMu+=6E2UhO160YWCkxgGsL5XKA at mail dot gmail dot com> <20130705184238 dot GA661 at host2 dot jankratochvil dot net>
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]