aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2015-05-27 12:55:19 -0700
committerDoug Evans <dje@google.com>2015-05-27 12:55:19 -0700
commit27e0867f4da863cf4e0cf9a297ae86598419729f (patch)
treee893cb1df2ad8871e26f27040e408e8fce2b0c95 /gdb
parent4dcabcc2b5d82dca1089f87e5830a8cd3b5a4bd6 (diff)
downloadgdb-27e0867f4da863cf4e0cf9a297ae86598419729f.zip
gdb-27e0867f4da863cf4e0cf9a297ae86598419729f.tar.gz
gdb-27e0867f4da863cf4e0cf9a297ae86598419729f.tar.bz2
Add set/show debug dwarf-line.
gdb/ChangeLog: * NEWS: Mention "set debug dwarf-line". * dwarf2read.c (dwarf_line_debug): New static global. (add_include_dir): Add debug dwarf-line support. (add_file_name, dwarf_record_line, dwarf_finish_line): Ditto. (_initialize_dwarf2_read): New parameter "debug dwarf-line". gdb/doc/ChangeLog: * gdb.texinfo (Debugging Output): Mention set/show debug dwarf-line.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/NEWS4
-rw-r--r--gdb/doc/ChangeLog4
-rw-r--r--gdb/doc/gdb.texinfo8
-rw-r--r--gdb/dwarf2read.c43
5 files changed, 65 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8122b98..e531727 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
2015-05-27 Doug Evans <dje@google.com>
+ * NEWS: Mention "set debug dwarf-line".
+ * dwarf2read.c (dwarf_line_debug): New static global.
+ (add_include_dir): Add debug dwarf-line support.
+ (add_file_name, dwarf_record_line, dwarf_finish_line): Ditto.
+ (_initialize_dwarf2_read): New parameter "debug dwarf-line".
+
+2015-05-27 Doug Evans <dje@google.com>
+
* cp-namespace.c (cp_lookup_nested_symbol): New arg "domain".
All callers updated.
(cp_lookup_nested_symbol_1, find_symbol_in_baseclass): Ditto.
diff --git a/gdb/NEWS b/gdb/NEWS
index 4c4e28c..bbfb55d 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -112,6 +112,10 @@ maint set dwarf max-cache-age
maint show dwarf max-cache-age
Renamed from "maint show dwarf2 max-cache-age".
+set debug dwarf-line
+show debug dwarf-line
+ Control display of debugging info regarding DWARF line processing.
+
set max-completions
show max-completions
Set the maximum number of candidates to be considered during
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 490afe2..171d30e 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,7 @@
+2015-05-27 Doug Evans <dje@google.com>
+
+ * gdb.texinfo (Debugging Output): Mention set/show debug dwarf-line.
+
2015-05-26 Doug Evans <dje@google.com>
* gdb.texinfo (Debugging Output): Update for DWARF "set debug"
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 6cc6c7e..9ea846a 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -23417,6 +23417,14 @@ The value is the number of nesting levels to print.
A value of zero turns off the display.
@item show debug dwarf-die
Show the current state of DWARF DIE debugging.
+@item set debug dwarf-line
+@cindex DWARF Line Tables
+Turns on or off display of debugging messages related to reading
+DWARF line tables. The default is 0 (off).
+A value of 1 provides basic information.
+A value greater than 1 provides more verbose information.
+@item show debug dwarf-line
+Show the current state of DWARF line table debugging.
@item set debug dwarf-read
@cindex DWARF Reading
Turns on or off display of debugging messages related to reading
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 8e30ff3..e6d6b30 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -84,6 +84,9 @@ static unsigned int dwarf_read_debug = 0;
/* When non-zero, dump DIEs after they are read in. */
static unsigned int dwarf_die_debug = 0;
+/* When non-zero, dump line number entries as they are read in. */
+static unsigned int dwarf_line_debug = 0;
+
/* When non-zero, cross-check physname against demangler. */
static int check_physname = 0;
@@ -17152,6 +17155,10 @@ free_line_header_voidp (void *arg)
static void
add_include_dir (struct line_header *lh, const char *include_dir)
{
+ if (dwarf_line_debug >= 2)
+ fprintf_unfiltered (gdb_stdlog, "Adding dir %u: %s\n",
+ lh->num_include_dirs + 1, include_dir);
+
/* Grow the array if necessary. */
if (lh->include_dirs_size == 0)
{
@@ -17181,6 +17188,10 @@ add_file_name (struct line_header *lh,
{
struct file_entry *fe;
+ if (dwarf_line_debug >= 2)
+ fprintf_unfiltered (gdb_stdlog, "Adding file %u: %s\n",
+ lh->num_file_names + 1, name);
+
/* Grow the array if necessary. */
if (lh->file_names_size == 0)
{
@@ -17529,6 +17540,14 @@ dwarf_record_line (struct gdbarch *gdbarch, struct subfile *subfile,
{
CORE_ADDR addr = gdbarch_addr_bits_remove (gdbarch, address);
+ if (dwarf_line_debug)
+ {
+ fprintf_unfiltered (gdb_stdlog,
+ "Recording line %u, file %s, address %s\n",
+ line, lbasename (subfile->name),
+ paddress (gdbarch, address));
+ }
+
(*p_record_line) (subfile, line, addr);
}
@@ -17541,8 +17560,18 @@ static void
dwarf_finish_line (struct gdbarch *gdbarch, struct subfile *subfile,
CORE_ADDR address, record_line_ftype p_record_line)
{
- if (subfile != NULL)
- dwarf_record_line (gdbarch, subfile, 0, address, p_record_line);
+ if (subfile == NULL)
+ return;
+
+ if (dwarf_line_debug)
+ {
+ fprintf_unfiltered (gdb_stdlog,
+ "Finishing current line, file %s, address %s\n",
+ lbasename (subfile->name),
+ paddress (gdbarch, address));
+ }
+
+ dwarf_record_line (gdbarch, subfile, 0, address, p_record_line);
}
/* Subroutine of dwarf_decode_lines to simplify it.
@@ -23321,6 +23350,16 @@ The value is the maximum depth to print."),
NULL,
&setdebuglist, &showdebuglist);
+ add_setshow_zuinteger_cmd ("dwarf-line", no_class, &dwarf_line_debug, _("\
+Set debugging of the dwarf line reader."), _("\
+Show debugging of the dwarf line reader."), _("\
+When enabled (non-zero), line number entries are dumped as they are read in.\n\
+A value of 1 (one) provides basic information.\n\
+A value greater than 1 provides more verbose information."),
+ NULL,
+ NULL,
+ &setdebuglist, &showdebuglist);
+
add_setshow_boolean_cmd ("check-physname", no_class, &check_physname, _("\
Set cross-checking of \"physname\" code against demangler."), _("\
Show cross-checking of \"physname\" code against demangler."), _("\