Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-debug-dev] Exception on GDB "-stack-list-frames"

Hi John,

We are using GDB 6.3 and have stumbled over this issue as well. If you have the option of rebuilding GDB you can simply replace a few error() calls with warning() calls to make CDT happier. If you're interested, I can look up exactly which lines we had to change in this way.

I think that the cause for this problem is that GDB 6.x doesn't always realize when it has reached the bottom of the call stack and tries to unwind the last stack frame multiple times. IMHO, calling error() at this point is too defensive.

Regards,
Stefan


John Dallaway wrote:
Hi Daniel

Thank you for your reply. Updating to GDB 6.7 is not a viable option for
me at present. I must workaround the issue. Do you understand why these
error messages arise and under what conditions an MI command might need
to be repeated? My experimentation suggests that switching to a new
thread using "-thread-select" and then switching back to the original
thread is sufficient to trigger the error on a subsequent
"-stack-list-frames" command.

I could modify the appropriate method in the Threads class to retry
"-stack-list-frames" in the same way that "-stack-info-depth" is
retried, but there may be other commands that require a similar treatment...

John Dallaway


-------- Original Message --------
Subject: cdt-debug-dev Digest, Vol 34, Issue 6
Date: Fri, 21 Dec 2007 12:00:14 -0500 (EST)
From: cdt-debug-dev-request@xxxxxxxxxxx
Reply-To: cdt-debug-dev@xxxxxxxxxxx
To: cdt-debug-dev@xxxxxxxxxxx

------------------------------

Message: 2
Date: Thu, 20 Dec 2007 12:32:05 -0500
From: Daniel Jacobowitz <drow@xxxxxxxxx>
Subject: Re: [cdt-debug-dev] Exception on GDB "-stack-list-frames"
To: CDT Debug developers list <cdt-debug-dev@xxxxxxxxxxx>
Message-ID: <20071220173205.GA19931@xxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset=us-ascii

On Thu, Dec 20, 2007 at 05:20:51PM +0000, John Dallaway wrote:
Hi

I am observing missing backtraces for some threads when debugging using
CDT 4.0.1 and GDB 6.1. Looking at the GDB/MI traffic, I note that the
backtraces are missing because "-stack-list-frames" returns:

  ^error,msg="Previous frame inner to this frame (corrupt stack?)"

which triggers an exception.

Please consider upgrading GDB; this won't be displayed as an error in
GDB 6.7.




Back to the top