From: Raunaq 12 <raunaq12@in.ibm.com>
To: Pedro Alves <palves@redhat.com>
Cc: gdb-patches@sourceware.org,
Mark Kettenis <mark.kettenis@xs4all.nl>,
tromey@redhat.com
Subject: Re: [PATCH 2/5] powerpc64-aix processing xlC generated line table
Date: Wed, 31 Jul 2013 09:57:00 -0000 [thread overview]
Message-ID: <OF668B9A7A.5414653D-ON65257BB9.00351B5A-65257BB9.003675D7@in.ibm.com> (raw)
In-Reply-To: <51F69F1E.40808@redhat.com>
> > + for (jj = 0; jj < lineTb->nitems; jj++)
> > + {
> > + if (lineTb->item[jj].line == 0 && (lineTb->item[jj].pc
> > + != lineTb->item[jj + 1].pc))
> > + lineTb->item[jj].line = lineTb->item[jj + 1].line;
> > + }
>
> Seems to me this duplicate code could/should be factored out to a helper
> function.
Agreed. Implementation looks much cleaner after using a function for the
duplicate code. Here is the modified patch and changelog.
---
ChangeLog :-
* xcoffread.c (modify_xlc_linenos): New function to modify xlc
generated linetables.
(process_linenos): make calls to the 'modify_xlc_linenos' to correctly
process linenos is case of xlc compiled binaries.
---
Index: ./gdb/xcoffread.c
===================================================================
--- ./gdb.orig/xcoffread.c
+++ ./gdb/xcoffread.c
@@ -241,6 +241,8 @@
static struct linetable *arrange_linetable (struct linetable *);
+static struct linetable *modify_xlc_linenos (struct linetable *);
+
static void record_include_end (struct coff_symbol *);
static void process_linenos (CORE_ADDR, CORE_ADDR);
@@ -589,6 +591,24 @@
}
}
+/* xlc compiled binaries have one less entry in the line table.
+ So the function entry lines marked as line number equal to 0
+ will be retained in the line table with line numbers equal
+ to its succeeding line table entry. */
+
+static struct linetable *
+modify_xlc_linenos ( struct linetable *lineTb )
+{
+ int jj;
+ for (jj = 0; jj < lineTb->nitems; jj++)
+ {
+ if (lineTb -> item[jj].line == 0 && (lineTb -> item[jj].pc
+ != lineTb->item[jj + 1].pc))
+ lineTb->item[jj].line = lineTb->item[jj+1].line;
+ }
+ return lineTb;
+}
+
/* Global variable to pass the psymtab down to all the routines involved
in psymtab to symtab processing. */
static struct partial_symtab *this_symtab_psymtab;
@@ -698,10 +718,14 @@
lv = main_subfile.line_vector;
+ /* Add extra line entry in case of xlc compiled binaries. */
+
+ lineTb = modify_xlc_linenos (lv);
+
/* Line numbers are not necessarily ordered. xlc compilation will
put static function to the end. */
- lineTb = arrange_linetable (lv);
+ lineTb = arrange_linetable (lineTb);
if (lv == lineTb)
{
current_subfile->line_vector = (struct linetable *)
@@ -730,10 +754,14 @@
lv = (inclTable[ii].subfile)->line_vector;
+ /* Add extra line entry in case of xlc compiled binaries */
+
+ lineTb = modify_xlc_linenos (lv);
+
/* Line numbers are not necessarily ordered. xlc compilation will
put static function to the end. */
- lineTb = arrange_linetable (lv);
+ lineTb = arrange_linetable (lineTb);
push_subfile ();
---
this is ok?
Note :- without this patch we are not able to break into functions at the
entry
point and we are not able to list functions by their name. eg :- list main
Regards,
Raunaq
next prev parent reply other threads:[~2013-07-31 9:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-29 6:15 Raunaq 12
2013-07-29 16:58 ` Pedro Alves
2013-07-31 9:57 ` Raunaq 12 [this message]
[not found] ` <OF668B9A7A.5414653D-ON65257BB9.00351B5A-65257BB9.003675D7@LocalDomain>
2013-07-31 10:03 ` Raunaq 12
[not found] <OF1EDEDB55.9DF54135-ON65257BBA.003B42B8-65257BBA.003D0F4D@LocalDomain>
2013-08-07 11:37 ` Raunaq 12
2013-08-07 15:23 ` Ulrich Weigand
2013-08-08 12:04 ` Raunaq 12
2013-08-08 22:01 ` Ulrich Weigand
2013-08-12 7:50 ` Raunaq 12
2013-08-26 15:30 ` Ulrich Weigand
-- strict thread matches above, loose matches on Subject: below --
2013-08-01 11:07 Raunaq 12
2013-07-24 12:37 Raunaq 12
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=OF668B9A7A.5414653D-ON65257BB9.00351B5A-65257BB9.003675D7@in.ibm.com \
--to=raunaq12@in.ibm.com \
--cc=gdb-patches@sourceware.org \
--cc=mark.kettenis@xs4all.nl \
--cc=palves@redhat.com \
--cc=tromey@redhat.com \
/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