mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-24 12:35:55 +08:00
Add "maint set dwarf synchronous"
For testing, it's sometimes convenient to be able to request that DWARF reading be done synchronously. This patch adds a new "maint" setting for this purpose. Reviewed-By: Eli Zaretskii <eliz@gnu.org>
This commit is contained in:
parent
a274da12ea
commit
9b595a2641
4
gdb/NEWS
4
gdb/NEWS
@ -9,6 +9,10 @@
|
||||
* GDB index now contains information about the main function. This speeds up
|
||||
startup when it is being used for some large binaries.
|
||||
|
||||
* On hosts where threading is available, DWARF reading is now done in
|
||||
the background, resulting in faster startup. This can be controlled
|
||||
using "maint set dwarf synchronous".
|
||||
|
||||
* Changed commands
|
||||
|
||||
disassemble
|
||||
|
@ -41833,6 +41833,24 @@ compilation units will be stored in memory longer, and more total
|
||||
memory will be used. Setting it to zero disables caching, which will
|
||||
slow down @value{GDBN} startup, but reduce memory consumption.
|
||||
|
||||
@kindex maint set dwarf synchronous
|
||||
@kindex maint show dwarf synchronous
|
||||
@item maint set dwarf synchronous
|
||||
@itemx maint show dwarf synchronous
|
||||
Control whether DWARF is read asynchronously.
|
||||
|
||||
On hosts where threading is available, the DWARF reader is mostly
|
||||
asynchronous with respect to the rest of @value{GDBN}. That is, the
|
||||
bulk of the reading is done in the background, and @value{GDBN} will
|
||||
only pause for completion of this task when absolutely necessary.
|
||||
|
||||
When this setting is enabled, @value{GDBN} will instead wait for DWARF
|
||||
processing to complete before continuing.
|
||||
|
||||
On hosts without threading, or where worker threads have been disabled
|
||||
at runtime, this setting has no effect, as DWARF reading is always
|
||||
done on the main thread, and is therefore always synchronous.
|
||||
|
||||
@kindex maint set dwarf unwinders
|
||||
@kindex maint show dwarf unwinders
|
||||
@item maint set dwarf unwinders
|
||||
|
@ -736,6 +736,18 @@ show_dwarf_max_cache_age (struct ui_file *file, int from_tty,
|
||||
"DWARF compilation units is %s.\n"),
|
||||
value);
|
||||
}
|
||||
|
||||
/* When true, wait for DWARF reading to be complete. */
|
||||
static bool dwarf_synchronous = false;
|
||||
|
||||
/* "Show" callback for "maint set dwarf synchronous". */
|
||||
static void
|
||||
show_dwarf_synchronous (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
{
|
||||
gdb_printf (file, _("Whether DWARF reading is synchronous is %s.\n"),
|
||||
value);
|
||||
}
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
@ -21938,6 +21950,21 @@ caching, which can slow down startup."),
|
||||
&set_dwarf_cmdlist,
|
||||
&show_dwarf_cmdlist);
|
||||
|
||||
add_setshow_boolean_cmd ("synchronous", class_obscure,
|
||||
&dwarf_synchronous, _("\
|
||||
Set whether DWARF is read synchronously."), _("\
|
||||
Show whether DWARF is read synchronously."), _("\
|
||||
By default, DWARF information is read in worker threads,\n\
|
||||
and gdb will not generally wait for the reading to complete\n\
|
||||
before continuing with other work, for example presenting a\n\
|
||||
prompt to the user.\n\
|
||||
Enabling this setting will cause the DWARF reader to always wait\n\
|
||||
for debug info processing to be finished before gdb can proceed."),
|
||||
nullptr,
|
||||
show_dwarf_synchronous,
|
||||
&set_dwarf_cmdlist,
|
||||
&show_dwarf_cmdlist);
|
||||
|
||||
add_setshow_zuinteger_cmd ("dwarf-read", no_class, &dwarf_read_debug, _("\
|
||||
Set debugging of the DWARF reader."), _("\
|
||||
Show debugging of the DWARF reader."), _("\
|
||||
|
Loading…
Reference in New Issue
Block a user