From: Jeremy F. <je...@go...> - 2004-02-29 21:46:48
|
On Sat, 2004-02-28 at 09:20, Tom Hughes wrote: > *************** > *** 5 **** > ! at 0x........: accept (in /...libc...) > --- 5 ---- > ! at 0x........: _dl_sysinfo_int80 (in /lib/ld-2.3.2.so) > > This is down to the FC1 kernel/glibc combination making use of the sysinfo > page so that all system calls appear to occur in _dl_sysinfo_int80 but I did > think that Jeremy had put a hack in valgrind to make it back out to the next > function in that case when printing the stack trace. Yes, that happens when you run under a kernel which doesn't have a sysinfo page. Normally, glibc will use the kernel's sysinfo, but if there isn't one, it uses _dl_sysinfo_int80. The FV loader will substitute the kernel's sysinfo page for its own, so that if your kernel supports sysinfo, Valgrind will do the right thing. The problem here is that it only substitutes an existing sysinfo page, but won't add an entry if there isn't one already. This means that glibc will use its own, and cause bogus traces like this. The fix is simple: add a sysinfo entry to the AUXV, even if there isn't one already. J |