This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
PATCH: Fix dwarf2 debug
- From: "H . J . Lu" <hjl at lucon dot org>
- To: nickc at redhat dot com, mec at shout dot net
- Cc: binutils at sources dot redhat dot com, GDB <gdb at sources dot redhat dot com>
- Date: Wed, 22 May 2002 08:33:33 -0700
- Subject: 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