Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
To: gdb-patches@sourceware.org
Subject: [RFA] Fix display of entry point address
Date: Fri, 30 Apr 2010 16:01:00 -0000	[thread overview]
Message-ID: <1272643300.25147.14.camel@e102111-lin.cambridge.arm.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1528 bytes --]

Hi,

Please can someone review the attached patch?

When displaying the entry point to a file (for instance as part of the
output of `info files') gdb prints the raw address it has calculated.
This is misleading on some platforms (notably on ARM when the entry
point is to a Thumb-state function) as the address will contain
additional information.

For example (from the break-entry.exp test):

(gdb) file /home/mgretton/gdb/build/gdb/testsuite/gdb.base/break-entry
Reading symbols from /home/mgretton/gdb/build/gdb/testsuite/gdb.base/break-entry...(no debugging symbols found)...done.
(gdb) info files
Symbols from "/home/mgretton/gdb/build/gdb/testsuite/gdb.base/break-entry".
Local exec file:
	`/home/mgretton/gdb/build/gdb/testsuite/gdb.base/break-entry', file type elf32-littlearm.
	Entry point: 0x8171

This is confusing as trying to set a breakpoint at 0x8171 causes a
warning like the following to be displayed:

(gdb) break *0x8171
warning: Breakpoint address adjusted from 0x00008171 to 0x00008170.
Breakpoint 1 at 0x8170

The attached patch changes gdb's behaviour to strip the arch specific
bits off the entry point before displaying it. 

A testsuite run shows no regressions, and the gdb.base/break-entry.exp
test now passes in its entirety.

Suggested ChangeLog entry:

2010-04-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* exec.c (print_section_info): Display entry point without arch 
	specific parts.

Thanks,

Matt

-- 
Matthew Gretton-Dann
Principal Engineer - Tools, PD Software
ARM Limited

[-- Attachment #2: 1004-gdb-entry-point.patch --]
[-- Type: text/x-patch, Size: 1068 bytes --]

Index: gdb/exec.c
===================================================================
RCS file: /cvs/src/src/gdb/exec.c,v
retrieving revision 1.97
diff -u -p -u -p -r1.97 exec.c
--- gdb/exec.c	14 Apr 2010 17:26:11 -0000	1.97
+++ gdb/exec.c	30 Apr 2010 13:05:27 -0000
@@ -669,6 +669,7 @@ print_section_info (struct target_sectio
     {
       /* gcc-3.4 does not like the initialization in <p == t->sections_end>.  */
       bfd_vma displacement = 0;
+      bfd_vma entry_point;
 
       for (p = t->sections; p < t->sections_end; p++)
 	{
@@ -690,9 +691,11 @@ print_section_info (struct target_sectio
 	warning (_("Cannot find section for the entry point of %s.\n"),
 		 bfd_get_filename (abfd));
 
+      entry_point = gdbarch_addr_bits_remove (gdbarch, 
+					      bfd_get_start_address (abfd) 
+						+ displacement);
       printf_filtered (_("\tEntry point: %s\n"),
-		       paddress (gdbarch, (bfd_get_start_address (abfd)
-					   + displacement)));
+		       paddress (gdbarch, entry_point));
     }
   for (p = t->sections; p < t->sections_end; p++)
     {

             reply	other threads:[~2010-04-30 16:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-30 16:01 Matthew Gretton-Dann [this message]
2010-04-30 16:58 ` Doug Evans
2010-04-30 21:14   ` Joel Brobecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1272643300.25147.14.camel@e102111-lin.cambridge.arm.com \
    --to=matthew.gretton-dann@arm.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox