John Dallaway
2008-01-03 07:45:43 UTC
Hi Stefan
Thank you for your reply. Yes, I do have the option of rebuilding GDB
6.1 and I will try your suggestion...
John Dallaway
-------- Original Message --------
Message: 1
Date: Sat, 29 Dec 2007 12:48:17 +0100
From: Stefan Bylund <mb649215-BG+***@public.gmane.org>
Subject: Re: [cdt-debug-dev] Exception on GDB "-stack-list-frames"
To: CDT Debug developers list <cdt-debug-dev-j9T/***@public.gmane.org>
Message-ID: <47763401.60503-BG+***@public.gmane.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
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
Thank you for your reply. Yes, I do have the option of rebuilding GDB
6.1 and I will try your suggestion...
John Dallaway
-------- Original Message --------
Message: 1
Date: Sat, 29 Dec 2007 12:48:17 +0100
From: Stefan Bylund <mb649215-BG+***@public.gmane.org>
Subject: Re: [cdt-debug-dev] Exception on GDB "-stack-list-frames"
To: CDT Debug developers list <cdt-debug-dev-j9T/***@public.gmane.org>
Message-ID: <47763401.60503-BG+***@public.gmane.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
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
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
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