This is the mail archive of the gdb-patches@sources.redhat.com 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: RFA: ia64 patch required after recent osabi changes


Kevin Buettner wrote:
On Nov 4, 7:04pm, J. Johnston wrote:


The latest changes by Mark K. have caused regressions in the ia64 signal handler back-tracing. What happens is that the ia64_gdbarch_init function is called without a bfd to calculate the os_ident field. The os_ident field is later used to set up the gdbarch_tdep structure which contains the sigcontext register address function address. We end up with an os_ident of -1 and don't set up the sigcontext register address function pointing to the ia64-linux-tdep.c function. This kills backtracing across signal handlers because we can't figure out the previous ip value without fishing it out of the sigcontext area.

After discussing this with Andrew, it appears the ia64 code is a bit old. The info.osabi field is set properly so we don't have to calculate the os_ident. This patch removes the gdbarch_tdep os_ident field and uses instead the info.osabi field in ia64_gdbarch_init. It also copies code from i386 which looks for a gdbarch candidate. This code is much more efficient than the old code.

With this patch, the ia64 signal backtracing works again and there are no regressions in the testsuite.

Ok to commit?

-- Jeff J.

2003-11-04 Jeff Johnston <jjohnstn@redhat.com>

* ia64-tdep.c (struct gdbarch_tdep): Remove os_ident field.
(ia64_gdbarch_init): Don't bother calculating the os. Instead use the gdbarch_info struct and look at the osabi field. Also use gdbarch_list_lookup_by_info() to look for a candidate gdbarch.


Approved.  (But watch the line lengths on your ChangeLog entry when you
check it in...)


Don't worry, I always do. I had problems with line wrapping when I entered it.


Patch checked in. This fixes the regression with the new osabi code and ia64 signal handling backtrace without having to remove the assertion.

-- Jeff J.


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