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 2/5] powerpc64-aix processing xlC generated line table


Corrected a few formatting errors that i just realised :-
---
./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 ();

---
Regards,
Raunaq


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