Re: How to tell gdb about dlls using remote protocol

Mark Kettenis
2007-02-08T21:14:58Z

> Date: Wed, 7 Feb 2007 17:16:44 -0500
> From: Daniel Jacobowitz <drow@false.org>
>
> On Wed, Feb 07, 2007 at 11:14:27PM +0100, Mark Kettenis wrote:
> > I think this diff makes sense. However, I'm pretty sure there are
> > Linux systems out there where this will make things worse :(. In
> > particular, on kernels with a vsyscall page buit without the stub
> > shared library for that page, this change will systematically skip a
> > frame. And that frame is quite crucial since it is the frame for the
> > libc system call stub, so it will be hard for a user to find out in
> > what system call the program is blocked on.
> >
> > I have no idea though how many people are still runing those kernels.
> > That number might be very low enough for us not to care.
>
> For what it's worth, I think it is. And, if it isn't, it would be
> straightforward to add a custom frame sniffer to i386-linux-tdep.c
> to recognize that case. I don't know what the affected versions
> are, though.

Me neither. However, Joel's diff has a problem: it makes the
signull.exp tests fail. They explicitly test calling a null pointer,
and that case is now caught by Joel's check. Skipping a frame in that
case is not acceptable to me.

I'm currently testing chaning Joel's original:

else if (cache->pc == 0)

into:

else if (cache->pc == 0 && frame_pc_unwind (next_frame) != 0)

What do you think of that?

Mark