This is the mail archive of the gdb@sources.redhat.com 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]

PATCH: Fix dwarf2 debug


Nick, could you please take a look at this patch for

http://sources.redhat.com/ml/gdb/2002-05/msg00230.html

Thanks.


H.J.
---
2002-05-22  H.J. Lu <hjl@gnu.org>

	* dwarf2dbg.c (dwarf2_emit_insn): Emit only one line symbol
	for one .loc for compiler.

--- gas/dwarf2dbg.c.loc	Tue May 21 22:41:34 2002
+++ gas/dwarf2dbg.c	Wed May 22 08:24:27 2002
@@ -287,12 +287,19 @@ dwarf2_emit_insn (size)
   struct dwarf2_line_info loc;
 
   if (loc_directive_seen)
-    /* Use the last location established by a .loc directive, not
-       the value returned by dwarf2_where().  That calls as_where()
-       which will return either the logical input file name (foo.c)
-       or the physical input file name (foo.s) and not the file name
-       specified in the most recent .loc directive (eg foo.h).  */
-    loc = current;
+    {
+      /* Use the last location established by a .loc directive, not
+	 the value returned by dwarf2_where().  That calls as_where()
+	 which will return either the logical input file name (foo.c)
+	or the physical input file name (foo.s) and not the file name
+	specified in the most recent .loc directive (eg foo.h).  */
+      loc = current;
+
+      /* Unless we generate DWARF2 debugging information for each
+	 assembler line, we only emit one line symbol for one LOC.  */
+      if (debug_type != DEBUG_DWARF2)
+	loc_directive_seen = false;
+    }
   else if (debug_type != DEBUG_DWARF2)
     return;
   else


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