This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
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"
}
}