mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-17 12:53:17 +08:00
* NEWS: Add note on "info sharedlibrary".
Remove note on "set print symbol-loading". * main.c (captured_main): Pass !batch for from_tty when calling symbol_file_add_main. * objfiles.h (objfile_has_partial_symbols): Declare. (objfile_has_full_symbols): Declare. * objfiles.c (objfile_has_partial_symbols): New function. (have_partial_symbols): Use it. (objfile_has_full_symbols): New function. (have_full_symbols): Use it. * solib.c: Include interps.h. (solib_read_symbols): Back out patch of 2008-07-10. Add test for info_verbose for symbol loading messages for consistency with symfile.c. (info_sharedlibrary_command): Handle optional parameter of regex of libraries to list. Inform user of libraries without debugging info. Rewrite to use ui_out routines to format output. * symfile.c (print_symbol_loading): Delete. (symbol_file_add_with_addrs_or_offsets): Back out patch of 2008-07-10. Print "no debugging symbols found" only if from_tty || info_verbose; and only check file being loaded, not all files. (reread_symbols): Test file being loaded for whether it has symbols, not all files. (__initialize_symfile): Delete `set print symbol-loading'. * symfile.h (print_symbol_loading): Delete. * doc/gdb.texinfo (Symbols): Delete `set print symbol-loading'. (Files): Add note on new optional regex arg to `info sharedlibrary'.
This commit is contained in:
@ -1,3 +1,31 @@
|
|||||||
|
2009-08-27 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
|
* NEWS: Add note on "info sharedlibrary".
|
||||||
|
Remove note on "set print symbol-loading".
|
||||||
|
* main.c (captured_main): Pass !batch for from_tty when calling
|
||||||
|
symbol_file_add_main.
|
||||||
|
* objfiles.h (objfile_has_partial_symbols): Declare.
|
||||||
|
(objfile_has_full_symbols): Declare.
|
||||||
|
* objfiles.c (objfile_has_partial_symbols): New function.
|
||||||
|
(have_partial_symbols): Use it.
|
||||||
|
(objfile_has_full_symbols): New function.
|
||||||
|
(have_full_symbols): Use it.
|
||||||
|
* solib.c: Include interps.h.
|
||||||
|
(solib_read_symbols): Back out patch of 2008-07-10.
|
||||||
|
Add test for info_verbose for symbol loading messages for
|
||||||
|
consistency with symfile.c.
|
||||||
|
(info_sharedlibrary_command): Handle optional parameter of regex of
|
||||||
|
libraries to list. Inform user of libraries without debugging info.
|
||||||
|
Rewrite to use ui_out routines to format output.
|
||||||
|
* symfile.c (print_symbol_loading): Delete.
|
||||||
|
(symbol_file_add_with_addrs_or_offsets): Back out patch of 2008-07-10.
|
||||||
|
Print "no debugging symbols found" only if from_tty || info_verbose;
|
||||||
|
and only check file being loaded, not all files.
|
||||||
|
(reread_symbols): Test file being loaded for whether it has symbols,
|
||||||
|
not all files.
|
||||||
|
(__initialize_symfile): Delete `set print symbol-loading'.
|
||||||
|
* symfile.h (print_symbol_loading): Delete.
|
||||||
|
|
||||||
2009-08-27 Jan Kratochvil <jan.kratochvil@redhat.com>
|
2009-08-27 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
* varobj.c (varobj_create): Error if the specified frame was not found
|
* varobj.c (varobj_create): Error if the specified frame was not found
|
||||||
|
7
gdb/NEWS
7
gdb/NEWS
@ -48,6 +48,9 @@ remote targets. To use this feature, specify a system root that begins
|
|||||||
with the `remote:' prefix, either via the `set sysroot' command or via
|
with the `remote:' prefix, either via the `set sysroot' command or via
|
||||||
the `--with-sysroot' configure-time option.
|
the `--with-sysroot' configure-time option.
|
||||||
|
|
||||||
|
* "info sharedlibrary" now takes an optional regex of libraries to show,
|
||||||
|
and it now reports if a shared library has no debugging information.
|
||||||
|
|
||||||
* Commands `set debug-file-directory', `set solib-search-path' and `set args'
|
* Commands `set debug-file-directory', `set solib-search-path' and `set args'
|
||||||
now complete on file names.
|
now complete on file names.
|
||||||
|
|
||||||
@ -278,10 +281,6 @@ set sh calling-convention
|
|||||||
show sh calling-convention
|
show sh calling-convention
|
||||||
Control the calling convention used when calling SH target functions.
|
Control the calling convention used when calling SH target functions.
|
||||||
|
|
||||||
set print symbol-loading
|
|
||||||
show print symbol-loading
|
|
||||||
Control printing of symbol loading messages.
|
|
||||||
|
|
||||||
set debug timestamp
|
set debug timestamp
|
||||||
show debug timestamp
|
show debug timestamp
|
||||||
Control display of timestamps with GDB debugging output.
|
Control display of timestamps with GDB debugging output.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2009-08-27 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
|
* gdb.texinfo (Symbols): Delete `set print symbol-loading'.
|
||||||
|
(Files): Add note on new optional regex arg to `info sharedlibrary'.
|
||||||
|
|
||||||
2009-08-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
2009-08-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||||
|
|
||||||
* gdbint.texinfo (Releasing GDB): Fix confusing sentence
|
* gdbint.texinfo (Releasing GDB): Fix confusing sentence
|
||||||
|
@ -12637,22 +12637,6 @@ is printed as follows:
|
|||||||
@item show opaque-type-resolution
|
@item show opaque-type-resolution
|
||||||
Show whether opaque types are resolved or not.
|
Show whether opaque types are resolved or not.
|
||||||
|
|
||||||
@kindex set print symbol-loading
|
|
||||||
@cindex print messages when symbols are loaded
|
|
||||||
@item set print symbol-loading
|
|
||||||
@itemx set print symbol-loading on
|
|
||||||
@itemx set print symbol-loading off
|
|
||||||
The @code{set print symbol-loading} command allows you to enable or
|
|
||||||
disable printing of messages when @value{GDBN} loads symbols.
|
|
||||||
By default, these messages will be printed, and normally this is what
|
|
||||||
you want. Disabling these messages is useful when debugging applications
|
|
||||||
with lots of shared libraries where the quantity of output can be more
|
|
||||||
annoying than useful.
|
|
||||||
|
|
||||||
@kindex show print symbol-loading
|
|
||||||
@item show print symbol-loading
|
|
||||||
Show whether messages will be printed when @value{GDBN} loads symbols.
|
|
||||||
|
|
||||||
@kindex maint print symbols
|
@kindex maint print symbols
|
||||||
@cindex symbol dump
|
@cindex symbol dump
|
||||||
@kindex maint print psymbols
|
@kindex maint print psymbols
|
||||||
@ -13525,9 +13509,11 @@ command:
|
|||||||
@table @code
|
@table @code
|
||||||
@kindex info sharedlibrary
|
@kindex info sharedlibrary
|
||||||
@kindex info share
|
@kindex info share
|
||||||
@item info share
|
@item info share @var{regex}
|
||||||
@itemx info sharedlibrary
|
@itemx info sharedlibrary @var{regex}
|
||||||
Print the names of the shared libraries which are currently loaded.
|
Print the names of the shared libraries which are currently loaded
|
||||||
|
that match @var{regex}. If @var{regex} is omitted then print
|
||||||
|
all shared libraries that are loaded.
|
||||||
|
|
||||||
@kindex sharedlibrary
|
@kindex sharedlibrary
|
||||||
@kindex share
|
@kindex share
|
||||||
|
@ -801,14 +801,14 @@ Excess command line arguments ignored. (%s%s)\n"),
|
|||||||
open it, better only print one error message.
|
open it, better only print one error message.
|
||||||
catch_command_errors returns non-zero on success! */
|
catch_command_errors returns non-zero on success! */
|
||||||
if (catch_command_errors (exec_file_attach, execarg, !batch, RETURN_MASK_ALL))
|
if (catch_command_errors (exec_file_attach, execarg, !batch, RETURN_MASK_ALL))
|
||||||
catch_command_errors (symbol_file_add_main, symarg, 0, RETURN_MASK_ALL);
|
catch_command_errors (symbol_file_add_main, symarg, !batch, RETURN_MASK_ALL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (execarg != NULL)
|
if (execarg != NULL)
|
||||||
catch_command_errors (exec_file_attach, execarg, !batch, RETURN_MASK_ALL);
|
catch_command_errors (exec_file_attach, execarg, !batch, RETURN_MASK_ALL);
|
||||||
if (symarg != NULL)
|
if (symarg != NULL)
|
||||||
catch_command_errors (symbol_file_add_main, symarg, 0, RETURN_MASK_ALL);
|
catch_command_errors (symbol_file_add_main, symarg, !batch, RETURN_MASK_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (corearg && pidarg)
|
if (corearg && pidarg)
|
||||||
|
@ -700,6 +700,22 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
|
|||||||
breakpoint_re_set ();
|
breakpoint_re_set ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return non-zero if OBJFILE has partial symbols. */
|
||||||
|
|
||||||
|
int
|
||||||
|
objfile_has_partial_symbols (struct objfile *objfile)
|
||||||
|
{
|
||||||
|
return objfile->psymtabs != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return non-zero if OBJFILE has full symbols. */
|
||||||
|
|
||||||
|
int
|
||||||
|
objfile_has_full_symbols (struct objfile *objfile)
|
||||||
|
{
|
||||||
|
return objfile->symtabs != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Many places in gdb want to test just to see if we have any partial
|
/* Many places in gdb want to test just to see if we have any partial
|
||||||
symbols available. This function returns zero if none are currently
|
symbols available. This function returns zero if none are currently
|
||||||
available, nonzero otherwise. */
|
available, nonzero otherwise. */
|
||||||
@ -711,10 +727,8 @@ have_partial_symbols (void)
|
|||||||
|
|
||||||
ALL_OBJFILES (ofp)
|
ALL_OBJFILES (ofp)
|
||||||
{
|
{
|
||||||
if (ofp->psymtabs != NULL)
|
if (objfile_has_partial_symbols (ofp))
|
||||||
{
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -730,10 +744,8 @@ have_full_symbols (void)
|
|||||||
|
|
||||||
ALL_OBJFILES (ofp)
|
ALL_OBJFILES (ofp)
|
||||||
{
|
{
|
||||||
if (ofp->symtabs != NULL)
|
if (objfile_has_full_symbols (ofp))
|
||||||
{
|
return 1;
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -472,6 +472,10 @@ extern void free_all_objfiles (void);
|
|||||||
|
|
||||||
extern void objfile_relocate (struct objfile *, struct section_offsets *);
|
extern void objfile_relocate (struct objfile *, struct section_offsets *);
|
||||||
|
|
||||||
|
extern int objfile_has_partial_symbols (struct objfile *objfile);
|
||||||
|
|
||||||
|
extern int objfile_has_full_symbols (struct objfile *objfile);
|
||||||
|
|
||||||
extern int have_partial_symbols (void);
|
extern int have_partial_symbols (void);
|
||||||
|
|
||||||
extern int have_full_symbols (void);
|
extern int have_full_symbols (void);
|
||||||
|
128
gdb/solib.c
128
gdb/solib.c
@ -46,6 +46,7 @@
|
|||||||
#include "readline/readline.h"
|
#include "readline/readline.h"
|
||||||
#include "remote.h"
|
#include "remote.h"
|
||||||
#include "solib.h"
|
#include "solib.h"
|
||||||
|
#include "interps.h"
|
||||||
|
|
||||||
/* Architecture-specific operations. */
|
/* Architecture-specific operations. */
|
||||||
|
|
||||||
@ -472,12 +473,12 @@ solib_read_symbols (struct so_list *so, int flags)
|
|||||||
|
|
||||||
if (so->symbols_loaded)
|
if (so->symbols_loaded)
|
||||||
{
|
{
|
||||||
if (from_tty)
|
if (from_tty || info_verbose)
|
||||||
printf_unfiltered (_("Symbols already loaded for %s\n"), so->so_name);
|
printf_unfiltered (_("Symbols already loaded for %s\n"), so->so_name);
|
||||||
}
|
}
|
||||||
else if (so->abfd == NULL)
|
else if (so->abfd == NULL)
|
||||||
{
|
{
|
||||||
if (from_tty)
|
if (from_tty || info_verbose)
|
||||||
printf_unfiltered (_("Symbol file not found for %s\n"), so->so_name);
|
printf_unfiltered (_("Symbol file not found for %s\n"), so->so_name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -493,7 +494,7 @@ solib_read_symbols (struct so_list *so, int flags)
|
|||||||
"Error while reading shared library symbols:\n");
|
"Error while reading shared library symbols:\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (from_tty && print_symbol_loading)
|
if (from_tty || info_verbose)
|
||||||
printf_unfiltered (_("Loaded symbols for %s\n"), so->so_name);
|
printf_unfiltered (_("Loaded symbols for %s\n"), so->so_name);
|
||||||
so->symbols_loaded = 1;
|
so->symbols_loaded = 1;
|
||||||
return 1;
|
return 1;
|
||||||
@ -784,52 +785,117 @@ solib_add (char *pattern, int from_tty, struct target_ops *target, int readsyms)
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
|
||||||
Walk through the shared library list and print information
|
Walk through the shared library list and print information
|
||||||
about each attached library.
|
about each attached library matching PATTERN. If PATTERN is elided,
|
||||||
|
print them all.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
info_sharedlibrary_command (char *ignore, int from_tty)
|
info_sharedlibrary_command (char *pattern, int from_tty)
|
||||||
{
|
{
|
||||||
struct so_list *so = NULL; /* link map state variable */
|
struct so_list *so = NULL; /* link map state variable */
|
||||||
int header_done = 0;
|
int header_done = 0;
|
||||||
|
int so_missing_debug_info = 0;
|
||||||
int addr_width;
|
int addr_width;
|
||||||
|
int nr_libs;
|
||||||
|
struct cleanup *table_cleanup;
|
||||||
|
struct gdbarch *gdbarch = target_gdbarch;
|
||||||
|
|
||||||
|
if (pattern)
|
||||||
|
{
|
||||||
|
char *re_err = re_comp (pattern);
|
||||||
|
|
||||||
|
if (re_err)
|
||||||
|
error (_("Invalid regexp: %s"), re_err);
|
||||||
|
}
|
||||||
|
|
||||||
/* "0x", a little whitespace, and two hex digits per byte of pointers. */
|
/* "0x", a little whitespace, and two hex digits per byte of pointers. */
|
||||||
addr_width = 4 + (gdbarch_ptr_bit (target_gdbarch) / 4);
|
addr_width = 4 + (gdbarch_ptr_bit (gdbarch) / 4);
|
||||||
|
|
||||||
update_solib_list (from_tty, 0);
|
update_solib_list (from_tty, 0);
|
||||||
|
|
||||||
for (so = so_list_head; so; so = so->next)
|
/* make_cleanup_ui_out_table_begin_end needs to know the number of
|
||||||
|
rows, so we need to make two passes over the libs. */
|
||||||
|
|
||||||
|
for (nr_libs = 0, so = so_list_head; so; so = so->next)
|
||||||
{
|
{
|
||||||
if (so->so_name[0])
|
if (so->so_name[0])
|
||||||
{
|
{
|
||||||
if (!header_done)
|
if (pattern && ! re_exec (so->so_name))
|
||||||
{
|
continue;
|
||||||
printf_unfiltered ("%-*s%-*s%-12s%s\n", addr_width, "From",
|
++nr_libs;
|
||||||
addr_width, "To", "Syms Read",
|
|
||||||
"Shared Object Library");
|
|
||||||
header_done++;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf_unfiltered ("%-*s", addr_width,
|
|
||||||
so->addr_high != 0
|
|
||||||
? hex_string_custom (
|
|
||||||
(LONGEST) so->addr_low,
|
|
||||||
addr_width - 4)
|
|
||||||
: "");
|
|
||||||
printf_unfiltered ("%-*s", addr_width,
|
|
||||||
so->addr_high != 0
|
|
||||||
? hex_string_custom (
|
|
||||||
(LONGEST) so->addr_high,
|
|
||||||
addr_width - 4)
|
|
||||||
: "");
|
|
||||||
printf_unfiltered ("%-12s", so->symbols_loaded ? "Yes" : "No");
|
|
||||||
printf_unfiltered ("%s\n", so->so_name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (so_list_head == NULL)
|
|
||||||
|
table_cleanup =
|
||||||
|
make_cleanup_ui_out_table_begin_end (uiout, 4, nr_libs,
|
||||||
|
"SharedLibraryTable");
|
||||||
|
|
||||||
|
/* The "- 1" is because ui_out adds one space between columns. */
|
||||||
|
ui_out_table_header (uiout, addr_width - 1, ui_left, "from", "From");
|
||||||
|
ui_out_table_header (uiout, addr_width - 1, ui_left, "to", "To");
|
||||||
|
ui_out_table_header (uiout, 12 - 1, ui_left, "syms-read", "Syms Read");
|
||||||
|
ui_out_table_header (uiout, 0, ui_noalign,
|
||||||
|
"name", "Shared Object Library");
|
||||||
|
|
||||||
|
ui_out_table_body (uiout);
|
||||||
|
|
||||||
|
for (so = so_list_head; so; so = so->next)
|
||||||
{
|
{
|
||||||
printf_unfiltered (_("No shared libraries loaded at this time.\n"));
|
struct cleanup *lib_cleanup;
|
||||||
|
|
||||||
|
if (! so->so_name[0])
|
||||||
|
continue;
|
||||||
|
if (pattern && ! re_exec (so->so_name))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
lib_cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "lib");
|
||||||
|
|
||||||
|
if (so->addr_high != 0)
|
||||||
|
{
|
||||||
|
ui_out_field_core_addr (uiout, "from", gdbarch, so->addr_low);
|
||||||
|
ui_out_field_core_addr (uiout, "to", gdbarch, so->addr_high);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui_out_field_skip (uiout, "from");
|
||||||
|
ui_out_field_skip (uiout, "to");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! ui_out_is_mi_like_p (interp_ui_out (top_level_interpreter ()))
|
||||||
|
&& so->symbols_loaded
|
||||||
|
&& !objfile_has_partial_symbols (so->objfile)
|
||||||
|
&& !objfile_has_full_symbols (so->objfile))
|
||||||
|
{
|
||||||
|
so_missing_debug_info = 1;
|
||||||
|
ui_out_field_string (uiout, "syms-read", "Yes (*)");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ui_out_field_string (uiout, "syms-read",
|
||||||
|
so->symbols_loaded ? "Yes" : "No");
|
||||||
|
|
||||||
|
ui_out_field_string (uiout, "name", so->so_name);
|
||||||
|
|
||||||
|
ui_out_text (uiout, "\n");
|
||||||
|
|
||||||
|
do_cleanups (lib_cleanup);
|
||||||
|
}
|
||||||
|
|
||||||
|
do_cleanups (table_cleanup);
|
||||||
|
|
||||||
|
if (nr_libs == 0)
|
||||||
|
{
|
||||||
|
if (pattern)
|
||||||
|
ui_out_message (uiout, 0,
|
||||||
|
_("No shared libraries matched.\n"));
|
||||||
|
else
|
||||||
|
ui_out_message (uiout, 0,
|
||||||
|
_("No shared libraries loaded at this time.\n"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (so_missing_debug_info)
|
||||||
|
ui_out_message (uiout, 0,
|
||||||
|
_("(*): Shared library is missing debugging information.\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,13 +171,6 @@ Dynamic symbol table reloading multiple times in one run is %s.\n"),
|
|||||||
value);
|
value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If non-zero, gdb will notify the user when it is loading symbols
|
|
||||||
from a file. This is almost always what users will want to have happen;
|
|
||||||
but for programs with lots of dynamically linked libraries, the output
|
|
||||||
can be more noise than signal. */
|
|
||||||
|
|
||||||
int print_symbol_loading = 1;
|
|
||||||
|
|
||||||
/* If non-zero, shared library symbols will be added automatically
|
/* If non-zero, shared library symbols will be added automatically
|
||||||
when the inferior is created, new libraries are loaded, or when
|
when the inferior is created, new libraries are loaded, or when
|
||||||
attaching to the inferior. This is almost always what users will
|
attaching to the inferior. This is almost always what users will
|
||||||
@ -989,12 +982,9 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd,
|
|||||||
deprecated_pre_add_symbol_hook (name);
|
deprecated_pre_add_symbol_hook (name);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (print_symbol_loading)
|
printf_unfiltered (_("Reading symbols from %s..."), name);
|
||||||
{
|
wrap_here ("");
|
||||||
printf_unfiltered (_("Reading symbols from %s..."), name);
|
gdb_flush (gdb_stdout);
|
||||||
wrap_here ("");
|
|
||||||
gdb_flush (gdb_stdout);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
syms_from_objfile (objfile, addrs, offsets, num_offsets,
|
syms_from_objfile (objfile, addrs, offsets, num_offsets,
|
||||||
@ -1007,7 +997,7 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd,
|
|||||||
|
|
||||||
if ((flags & OBJF_READNOW) || readnow_symbol_files)
|
if ((flags & OBJF_READNOW) || readnow_symbol_files)
|
||||||
{
|
{
|
||||||
if ((from_tty || info_verbose) && print_symbol_loading)
|
if (from_tty || info_verbose)
|
||||||
{
|
{
|
||||||
printf_unfiltered (_("expanding to full symbols..."));
|
printf_unfiltered (_("expanding to full symbols..."));
|
||||||
wrap_here ("");
|
wrap_here ("");
|
||||||
@ -1049,15 +1039,12 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd,
|
|||||||
xfree (debugfile);
|
xfree (debugfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!have_partial_symbols () && !have_full_symbols ()
|
if ((from_tty || info_verbose)
|
||||||
&& print_symbol_loading)
|
&& !objfile_has_partial_symbols (objfile)
|
||||||
|
&& !objfile_has_full_symbols (objfile))
|
||||||
{
|
{
|
||||||
wrap_here ("");
|
wrap_here ("");
|
||||||
printf_unfiltered (_("(no debugging symbols found)"));
|
printf_unfiltered (_("(no debugging symbols found)..."));
|
||||||
if (from_tty || info_verbose)
|
|
||||||
printf_unfiltered ("...");
|
|
||||||
else
|
|
||||||
printf_unfiltered ("\n");
|
|
||||||
wrap_here ("");
|
wrap_here ("");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1066,10 +1053,7 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd,
|
|||||||
if (deprecated_post_add_symbol_hook)
|
if (deprecated_post_add_symbol_hook)
|
||||||
deprecated_post_add_symbol_hook ();
|
deprecated_post_add_symbol_hook ();
|
||||||
else
|
else
|
||||||
{
|
printf_unfiltered (_("done.\n"));
|
||||||
if (print_symbol_loading)
|
|
||||||
printf_unfiltered (_("done.\n"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We print some messages regardless of whether 'from_tty ||
|
/* We print some messages regardless of whether 'from_tty ||
|
||||||
@ -2438,7 +2422,8 @@ reread_symbols (void)
|
|||||||
zero is OK since dbxread.c also does what it needs to do if
|
zero is OK since dbxread.c also does what it needs to do if
|
||||||
objfile->global_psymbols.size is 0. */
|
objfile->global_psymbols.size is 0. */
|
||||||
(*objfile->sf->sym_read) (objfile, 0);
|
(*objfile->sf->sym_read) (objfile, 0);
|
||||||
if (!have_partial_symbols () && !have_full_symbols ())
|
if (!objfile_has_partial_symbols (objfile)
|
||||||
|
&& !objfile_has_full_symbols (objfile))
|
||||||
{
|
{
|
||||||
wrap_here ("");
|
wrap_here ("");
|
||||||
printf_unfiltered (_("(no debugging symbols found)\n"));
|
printf_unfiltered (_("(no debugging symbols found)\n"));
|
||||||
@ -4207,12 +4192,4 @@ the global debug-file directory prepended."),
|
|||||||
NULL,
|
NULL,
|
||||||
show_debug_file_directory,
|
show_debug_file_directory,
|
||||||
&setlist, &showlist);
|
&setlist, &showlist);
|
||||||
|
|
||||||
add_setshow_boolean_cmd ("symbol-loading", no_class,
|
|
||||||
&print_symbol_loading, _("\
|
|
||||||
Set printing of symbol loading messages."), _("\
|
|
||||||
Show printing of symbol loading messages."), NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
&setprintlist, &showprintlist);
|
|
||||||
}
|
}
|
||||||
|
@ -284,13 +284,6 @@ extern char *obconcat (struct obstack *obstackp, const char *, const char *,
|
|||||||
|
|
||||||
/* Variables */
|
/* Variables */
|
||||||
|
|
||||||
/* If non-zero, gdb will notify the user when it is loading symbols
|
|
||||||
from a file. This is almost always what users will want to have happen;
|
|
||||||
but for programs with lots of dynamically linked libraries, the output
|
|
||||||
can be more noise than signal. */
|
|
||||||
|
|
||||||
extern int print_symbol_loading;
|
|
||||||
|
|
||||||
/* If non-zero, shared library symbols will be added automatically
|
/* If non-zero, shared library symbols will be added automatically
|
||||||
when the inferior is created, new libraries are loaded, or when
|
when the inferior is created, new libraries are loaded, or when
|
||||||
attaching to the inferior. This is almost always what users will
|
attaching to the inferior. This is almost always what users will
|
||||||
|
Reference in New Issue
Block a user