This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [rfc] Eliminate write_register from solib-sunos.c
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: drow at false dot org (Daniel Jacobowitz)
- Cc: mark dot kettenis at xs4all dot nl (Mark Kettenis), gdb-patches at sourceware dot org
- Date: Sat, 16 Jun 2007 00:12:55 +0200 (CEST)
- Subject: Re: [rfc] Eliminate write_register from solib-sunos.c
Daniel Jacobowitz wrote:
> On Fri, Jun 15, 2007 at 06:58:29PM +0200, Ulrich Weigand wrote:
> > So, if that's OK with you, I'd like to commit my original patch
> > that leaves the "if (DECR_PC_AFTER_BREAK)" block in, and simply
> > replaces the write_register call with write_pc. I've now tested
> > that patch on my i386-openbsd3.3 setup with no regressions.
>
> If you have a moment, could you add an explanation of why this is
> necessary to the code?
Certainly. I've committed the following patch.
Bye,
Ulrich
ChangeLog:
* solib-sunos.c (sunos_solib_create_inferior_hook): Add comment
explaining why the PC adjustment code is necessary.
diff -urNp gdb-orig/gdb/solib-sunos.c gdb-head/gdb/solib-sunos.c
--- gdb-orig/gdb/solib-sunos.c 2007-06-15 21:14:47.675137191 +0200
+++ gdb-head/gdb/solib-sunos.c 2007-06-16 00:07:15.018979384 +0200
@@ -775,7 +775,13 @@ sunos_solib_create_inferior_hook (void)
/* We are now either at the "mapping complete" breakpoint (or somewhere
else, a condition we aren't prepared to deal with anyway), so adjust
the PC as necessary after a breakpoint, disable the breakpoint, and
- add any shared libraries that were mapped in. */
+ add any shared libraries that were mapped in.
+
+ Note that adjust_pc_after_break did not perform any PC adjustment,
+ as the breakpoint the inferior just hit was not inserted by GDB,
+ but by the dynamic loader itself, and is therefore not found on
+ the GDB software break point list. Thus we have to adjust the
+ PC here. */
if (gdbarch_decr_pc_after_break (current_gdbarch))
{
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com