Is there a way to fix this problem in gdb 6.4 itself. I have
made a lot of
code modifications to comply
with my project requirements and it would be difficult to
shift to any other
version of gdb. The code that I am debugging does not have a
main() as the
last function on stack. Instead it has
something else. Can I unwind till it finds that function and
then stop
unwinding ? I see a piece
of code in frame.c for get_prev_frame() function which tests
for
backtrace_past_entry. There is
also a backtrace_limit. Another function
iniside_entry_func() seems to check
if we are inside
the entry function. Can we use all that to determine that
the unwinding has
now reached
the entry level function and it should stop unwinding any
further ?
>From: Daniel Jacobowitz <drow false.org>
>To: Kalpana Ramamurthy <kal_pana hotmail.com>
>CC: gdb sourceware.org
>Subject: Re: gdb 6.4 does not stop unwinding even after
reaching the
>lastframe.
>Date: Wed, 28 Mar 2007 07:26:42 -0400
>
>On Wed, Mar 28, 2007 at 09:23:53AM +0000, Kalpana
Ramamurthy wrote:
> > Hello,
>
> > I am using gdb 6.4 for debugging the product that
I work on. When I try
>to
> > print a bactrace, I get
> > an extra frame at the end which looks like this :
>
> > #6 0x00000000 in ?? ()
>
>There are not a lot of ways to safely indicate the end
of the stack.
>Due to some internal reorganization, GDB 6.x is usually
better about
>unwinding through strange things on the stack - but as a
consequence
>it sometimes unwinds through the last frame too. Please
try a version
>from CVS and see if it's any better; it may or may not
be.
>
>--
>Daniel Jacobowitz
>CodeSourcery
____________________________________________________________
_____
Spice up your IM conversations. New, colorful and animated
emoticons. Get
chatting! http://serve
r1.msn.co.in/SP05/emoticons/
|