Change "set debug symtab-create" to take a verbosity level.
* NEWS: Mention that "set debug symtab-create" now accepts a verbosity level. * buildsym.c (end_symtab_from_static_block): Call set_symtab_primary to set the symtab's primary flag. * jit.c (finalize_symtab): Ditto. * mdebugread.c (psymtab_to_symtab_1): Ditto. * symfile.c (allocate_symtab): Only print debugging messages for symtab_create_debug levels 2 and higher. * symtab.c (symtab_create_debug): Change type to unsigned int. (set_symtab_primary): New function. (_initialize_symtab): Change "set debug symtab-create" to a zuinteger option. * symtab.h (set_symtab_primary): Declare. (symtab_create_debug): Update decl. doc/ * gdb.texinfo (Debugging Output): Update text for "set debug symtab-create".
This commit is contained in:
parent
e78e02e6d9
commit
db0fec5c48
10 changed files with 66 additions and 16 deletions
|
@ -1,3 +1,20 @@
|
||||||
|
2013-11-08 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
|
* NEWS: Mention that "set debug symtab-create" now accepts a
|
||||||
|
verbosity level.
|
||||||
|
* buildsym.c (end_symtab_from_static_block): Call set_symtab_primary
|
||||||
|
to set the symtab's primary flag.
|
||||||
|
* jit.c (finalize_symtab): Ditto.
|
||||||
|
* mdebugread.c (psymtab_to_symtab_1): Ditto.
|
||||||
|
* symfile.c (allocate_symtab): Only print debugging messages for
|
||||||
|
symtab_create_debug levels 2 and higher.
|
||||||
|
* symtab.c (symtab_create_debug): Change type to unsigned int.
|
||||||
|
(set_symtab_primary): New function.
|
||||||
|
(_initialize_symtab): Change "set debug symtab-create" to a
|
||||||
|
zuinteger option.
|
||||||
|
* symtab.h (set_symtab_primary): Declare.
|
||||||
|
(symtab_create_debug): Update decl.
|
||||||
|
|
||||||
2013-11-08 Tom Tromey <tromey@redhat.com>
|
2013-11-08 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
* aix-thread.c (aix_thread_detach): Update.
|
* aix-thread.c (aix_thread_detach): Update.
|
||||||
|
|
4
gdb/NEWS
4
gdb/NEWS
|
@ -116,6 +116,10 @@ show startup-with-shell
|
||||||
trace-buffer-size -1" and "set height unlimited" is now an alias for
|
trace-buffer-size -1" and "set height unlimited" is now an alias for
|
||||||
"set height 0".
|
"set height 0".
|
||||||
|
|
||||||
|
* The "set debug symtab-create" debugging option of GDB has been changed to
|
||||||
|
accept a verbosity level. 0 means "off", 1 provides basic debugging
|
||||||
|
output, and values of 2 or greater provides more verbose output.
|
||||||
|
|
||||||
* New command-line options
|
* New command-line options
|
||||||
--configuration
|
--configuration
|
||||||
Display the details of GDB configure-time options.
|
Display the details of GDB configure-time options.
|
||||||
|
|
|
@ -1231,8 +1231,7 @@ end_symtab_from_static_block (struct block *static_block,
|
||||||
/* All symtabs for the main file and the subfiles share a
|
/* All symtabs for the main file and the subfiles share a
|
||||||
blockvector, so we need to clear primary for everything
|
blockvector, so we need to clear primary for everything
|
||||||
but the main file. */
|
but the main file. */
|
||||||
|
set_symtab_primary (symtab, 0);
|
||||||
symtab->primary = 0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1280,7 +1279,7 @@ end_symtab_from_static_block (struct block *static_block,
|
||||||
/* Set this for the main source file. */
|
/* Set this for the main source file. */
|
||||||
if (symtab)
|
if (symtab)
|
||||||
{
|
{
|
||||||
symtab->primary = 1;
|
set_symtab_primary (symtab, 1);
|
||||||
|
|
||||||
if (symtab->blockvector)
|
if (symtab->blockvector)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-11-08 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
|
* gdb.texinfo (Debugging Output): Update text for
|
||||||
|
"set debug symtab-create".
|
||||||
|
|
||||||
2013-11-07 Phil Muldoon <pmuldoon@redhat.com>
|
2013-11-07 Phil Muldoon <pmuldoon@redhat.com>
|
||||||
|
|
||||||
* gdb.texinfo (Commands In Python): Document COMPLETE_EXPRESSION
|
* gdb.texinfo (Commands In Python): Document COMPLETE_EXPRESSION
|
||||||
|
|
|
@ -22731,7 +22731,9 @@ Show the current state of symbol file debugging messages.
|
||||||
@item set debug symtab-create
|
@item set debug symtab-create
|
||||||
@cindex symbol table creation
|
@cindex symbol table creation
|
||||||
Turns on or off display of debugging messages related to symbol table creation.
|
Turns on or off display of debugging messages related to symbol table creation.
|
||||||
The default is off.
|
The default is 0 (off).
|
||||||
|
A value of 1 provides basic information.
|
||||||
|
A value greater than 1 provides more verbose information.
|
||||||
@item show debug symtab-create
|
@item show debug symtab-create
|
||||||
Show the current state of symbol table creation debugging.
|
Show the current state of symbol table creation debugging.
|
||||||
@item set debug target
|
@item set debug target
|
||||||
|
|
|
@ -665,7 +665,7 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
|
||||||
|
|
||||||
/* (begin, end) will contain the PC range this entire blockvector
|
/* (begin, end) will contain the PC range this entire blockvector
|
||||||
spans. */
|
spans. */
|
||||||
symtab->primary = 1;
|
set_symtab_primary (symtab, 1);
|
||||||
BLOCKVECTOR_MAP (symtab->blockvector) = NULL;
|
BLOCKVECTOR_MAP (symtab->blockvector) = NULL;
|
||||||
begin = stab->blocks->begin;
|
begin = stab->blocks->begin;
|
||||||
end = stab->blocks->end;
|
end = stab->blocks->end;
|
||||||
|
|
|
@ -4334,7 +4334,7 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||||
}
|
}
|
||||||
pop_parse_stack ();
|
pop_parse_stack ();
|
||||||
|
|
||||||
st->primary = 1;
|
set_symtab_primary (st, 1);
|
||||||
|
|
||||||
sort_blocks (st);
|
sort_blocks (st);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2891,7 +2891,9 @@ allocate_symtab (const char *filename, struct objfile *objfile)
|
||||||
symtab->next = objfile->symtabs;
|
symtab->next = objfile->symtabs;
|
||||||
objfile->symtabs = symtab;
|
objfile->symtabs = symtab;
|
||||||
|
|
||||||
if (symtab_create_debug)
|
/* This can be very verbose with lots of headers.
|
||||||
|
Only print at higher debug levels. */
|
||||||
|
if (symtab_create_debug >= 2)
|
||||||
{
|
{
|
||||||
/* Be a bit clever with debugging messages, and don't print objfile
|
/* Be a bit clever with debugging messages, and don't print objfile
|
||||||
every time, only when it changes. */
|
every time, only when it changes. */
|
||||||
|
|
34
gdb/symtab.c
34
gdb/symtab.c
|
@ -106,7 +106,7 @@ void _initialize_symtab (void);
|
||||||
/* */
|
/* */
|
||||||
|
|
||||||
/* When non-zero, print debugging messages related to symtab creation. */
|
/* When non-zero, print debugging messages related to symtab creation. */
|
||||||
int symtab_create_debug = 0;
|
unsigned int symtab_create_debug = 0;
|
||||||
|
|
||||||
/* Non-zero if a file may be known by two different basenames.
|
/* Non-zero if a file may be known by two different basenames.
|
||||||
This is the uncommon case, and significantly slows down gdb.
|
This is the uncommon case, and significantly slows down gdb.
|
||||||
|
@ -174,6 +174,22 @@ search_domain_name (enum search_domain e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set the primary field in SYMTAB. */
|
||||||
|
|
||||||
|
void
|
||||||
|
set_symtab_primary (struct symtab *symtab, int primary)
|
||||||
|
{
|
||||||
|
symtab->primary = primary;
|
||||||
|
|
||||||
|
if (symtab_create_debug && primary)
|
||||||
|
{
|
||||||
|
fprintf_unfiltered (gdb_stdlog,
|
||||||
|
"Created primary symtab %s for %s.\n",
|
||||||
|
host_address_to_string (symtab),
|
||||||
|
symtab_to_filename_for_display (symtab));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* See whether FILENAME matches SEARCH_NAME using the rule that we
|
/* See whether FILENAME matches SEARCH_NAME using the rule that we
|
||||||
advertise to the user. (The manual's description of linespecs
|
advertise to the user. (The manual's description of linespecs
|
||||||
describes what we advertise). Returns true if they match, false
|
describes what we advertise). Returns true if they match, false
|
||||||
|
@ -5273,13 +5289,15 @@ one base name, and gdb will do file name comparisons more efficiently."),
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
&setlist, &showlist);
|
&setlist, &showlist);
|
||||||
|
|
||||||
add_setshow_boolean_cmd ("symtab-create", no_class, &symtab_create_debug,
|
add_setshow_zuinteger_cmd ("symtab-create", no_class, &symtab_create_debug,
|
||||||
_("Set debugging of symbol table creation."),
|
_("Set debugging of symbol table creation."),
|
||||||
_("Show debugging of symbol table creation."), _("\
|
_("Show debugging of symbol table creation."), _("\
|
||||||
When enabled, debugging messages are printed when building symbol tables."),
|
When enabled (non-zero), debugging messages are printed when building\n\
|
||||||
NULL,
|
symbol tables. A value of 1 (one) normally provides enough information.\n\
|
||||||
NULL,
|
A value greater than 1 provides more verbose information."),
|
||||||
&setdebuglist, &showdebuglist);
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&setdebuglist, &showdebuglist);
|
||||||
|
|
||||||
observer_attach_executable_changed (symtab_observer_executable_changed);
|
observer_attach_executable_changed (symtab_observer_executable_changed);
|
||||||
}
|
}
|
||||||
|
|
|
@ -941,6 +941,9 @@ struct symtab
|
||||||
#define LINETABLE(symtab) (symtab)->linetable
|
#define LINETABLE(symtab) (symtab)->linetable
|
||||||
#define SYMTAB_PSPACE(symtab) (symtab)->objfile->pspace
|
#define SYMTAB_PSPACE(symtab) (symtab)->objfile->pspace
|
||||||
|
|
||||||
|
/* Call this to set the "primary" field in struct symtab. */
|
||||||
|
extern void set_symtab_primary (struct symtab *, int primary);
|
||||||
|
|
||||||
typedef struct symtab *symtab_ptr;
|
typedef struct symtab *symtab_ptr;
|
||||||
DEF_VEC_P (symtab_ptr);
|
DEF_VEC_P (symtab_ptr);
|
||||||
|
|
||||||
|
@ -1335,7 +1338,7 @@ void fixup_section (struct general_symbol_info *ginfo,
|
||||||
|
|
||||||
struct objfile *lookup_objfile_from_block (const struct block *block);
|
struct objfile *lookup_objfile_from_block (const struct block *block);
|
||||||
|
|
||||||
extern int symtab_create_debug;
|
extern unsigned int symtab_create_debug;
|
||||||
|
|
||||||
extern int basenames_may_differ;
|
extern int basenames_may_differ;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue