This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to tell gdb about dlls using remote protocol


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]