This is the mail archive of the gdb-patches@sourceware.org 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: [patch] Sanity check PIE displacement (like the PIC one)


On Thu, 11 Feb 2010 23:26:07 +0100, Daniel Jacobowitz wrote:
> On Thu, Feb 11, 2010 at 11:21:13PM +0100, Jan Kratochvil wrote:
> > The life-saver message is IMO "B" but the message(s) being discussed to be
> > removed is A1+A2.
> > 
> > Is the attached patch what everone agrees upon or have I not understood it?
> 
> Fine with me.  Or you could just use verbose.

OK, verbose may be more appropriate.

Made some additional text content changes, therefore asking for new approval.

.dynamic section for ".../gdb.base/prelink.so" at 0x38b38006c0 is not at the expected address 0x39bb6006c0, difference appears to be caused by prelink, adjusting expectations.

No regressions on {x86_64,x86_64-m32,i686}-fedora12-linux-gnu.


Thanks,
Jan


gdb/
2010-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* solib-svr4.c: (LM_ADDR_CHECK): Print successful prelink adjustment
	only if INFO_VERBOSE.  Use printf_unfiltered for it.  Add trailing dot.
	Print twice paddress for both successful and unsuccessful adjustment.

Gdb/testsuite/
2010-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* gdb.base/prelink.exp (set verbose on): New.
	(prelink): Remove expected "warning: " prefixes.

--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -222,15 +222,21 @@ LM_ADDR_CHECK (struct so_list *so, bfd *abfd)
 	    {
 	      l_addr = l_dynaddr - dynaddr;
 
-	      warning (_(".dynamic section for \"%s\" "
-		     "is not at the expected address"), so->so_name);
-	      warning (_("difference appears to be caused by prelink, "
-			 "adjusting expectations"));
+	      if (info_verbose)
+		printf_unfiltered (_(".dynamic section for \"%s\" at %s "
+				     "is not at the expected address %s, "
+				     "difference appears to be caused "
+				     "by prelink, adjusting expectations.\n"),
+				 so->so_name,
+				 paddress (target_gdbarch, dynaddr),
+				 paddress (target_gdbarch, l_dynaddr));
 	    }
 	  else
-	    warning (_(".dynamic section for \"%s\" "
-		       "is not at the expected address "
-		       "(wrong library or version mismatch?)"), so->so_name);
+	    warning (_(".dynamic section for \"%s\" at %s "
+		       "is not at the expected address %s "
+		       "(wrong library or version mismatch?)"), so->so_name,
+		     paddress (target_gdbarch, dynaddr),
+		     paddress (target_gdbarch, l_dynaddr));
 	}
 
     set_addr:
--- a/gdb/testsuite/gdb.base/prelink.exp
+++ b/gdb/testsuite/gdb.base/prelink.exp
@@ -109,10 +109,13 @@ gdb_start
 gdb_reinitialize_dir $srcdir/$subdir
 gdb_load ${binfile}
 
+# Print the "adjusting expectations" message.
+gdb_test "set verbose on"
+
 set test "prelink"
 global gdb_prompt
 gdb_test_multiple "core-file $objdir/$subdir/prelink.core" "$test" {
-    -re "warning: \.dynamic section.*not at the expected address.*warning: difference.*caused by prelink, adjusting expectations.*$gdb_prompt $" {
+    -re "\.dynamic section.*not at the expected address.*difference.*caused by prelink, adjusting expectations.*$gdb_prompt $" {
 	pass "$test"
     }
 }


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