This is the mail archive of the 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: [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.



	* 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

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