diff options
author | Doug Evans <dje@google.com> | 2015-05-27 12:55:19 -0700 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2015-05-27 12:55:19 -0700 |
commit | 27e0867f4da863cf4e0cf9a297ae86598419729f (patch) | |
tree | e893cb1df2ad8871e26f27040e408e8fce2b0c95 /gdb | |
parent | 4dcabcc2b5d82dca1089f87e5830a8cd3b5a4bd6 (diff) | |
download | gdb-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/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/NEWS | 4 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 8 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 43 |
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. @@ -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."), _("\ |