From mboxrd@z Thu Jan 1 00:00:00 1970 From: Elena Zannoni To: fnf@ninemoons.com Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] Change auto-solib-add to boolean, add auto-solib-limit Date: Sat, 27 Oct 2001 17:01:00 -0000 Message-id: <15323.19572.366470.706333@krustylu.cygnus.com> References: <200110271948.f9RJmLd08493@fishpond.ninemoons.com> X-SW-Source: 2001-10/msg00340.html Symfile.c and .h changes are Ok. Thanks, Fred. Elena Fred Fish writes: > n the current gdb, auto-solib-add is used as both a boolean and as a > limiting size in megabytes. This patch removes this overloaded > meaning. > > In the past I've submitted several versions of a patch to fix some > problems with auto-solib-add, but they have never quite been approved > in full. In response to feedback, and by specific request to remove > the overloaded meaning of the auto-solib-add variable, this patch > changes auto-solib-add into a boolean and adds a new variable, called > auto-solib-limit to hold the shlib symbol table size limit value for > those systems that support this. > > Once this patch is approved and installed, I'll rework my previous > auto-solib-add patch and resubmit it. > > -Fred > > 2001-10-27 Fred Fish > > * symfile.c (auto_solib_add): Update comment to note that > this variable is now just used as a boolean to control shlib > autoloading, and clarify when it is used. > * symfile.h (auto_solib_add): Ditto. > > * symfile.c (auto_solib_limit): New variable that holds the > autoloading threshold instead of overloading auto_solib_add. > * symfile.h (auto_solib_limit): Ditto. > > * doc/gdb.texinfo (auto-solib-add): Change docs to match > implementation change. > (auto-solib-limit): Add docs for new variable. > > * irix5-nat.c (_initialize_solib): Change auto-solib-add > variable from var_zinteger to var_boolean and update help. > * osfsolib.c (_initialize_solib): Ditto. > * pa64solib.c (_initialize_pa64_solib): Ditto. > * solib.c (_initialize_solib): Ditto. > * somsolib.c (_initialize_som_solib): Ditto. > * xcoffsolib.c (_initialize_solib): Ditto. > > * pa64solib.c (pa64_solib_total_st_size): Update comment to > note that the new auto_solib_limit variable is used instead > of overloading auto_solib_add variable. > (_initialize_pa64_solib): Ditto. > * somsolib.c (som_solib_total_st_size): Ditto. > (_initialize_som_solib): Ditto. > > * pa64solib.c (_initialize_pa64_solib): Add new set/show > commands for auto-solib-limit variable. > * somsolib.c (_initialize_som_solib): Ditto > > * pa64solib.c (add_to_solist): Check that auto_solib_add is > set and use auto_solib_limit as the threshold size instead > of auto_solib_add. > * somsolib.c (som_solib_add): Ditto, and also change warning > text about size threshold exceeded. > > > Index: irix5-nat.c > =================================================================== > RCS file: /cvs/src/src/gdb/irix5-nat.c,v > retrieving revision 1.14 > diff -u -p -r1.14 irix5-nat.c > --- irix5-nat.c 2001/09/14 00:40:29 1.14 > +++ irix5-nat.c 2001/10/27 19:32:35 > @@ -1287,13 +1287,13 @@ _initialize_solib (void) > "Status of loaded shared object libraries."); > > add_show_from_set > - (add_set_cmd ("auto-solib-add", class_support, var_zinteger, > + (add_set_cmd ("auto-solib-add", class_support, var_boolean, > (char *) &auto_solib_add, > "Set autoloading of shared library symbols.\n\ > -If nonzero, symbols from all shared object libraries will be loaded\n\ > -automatically when the inferior begins execution or when the dynamic linker\n\ > -informs gdb that a new library has been loaded. Otherwise, symbols\n\ > -must be loaded manually, using `sharedlibrary'.", > +If \"on\", symbols from all shared object libraries will be loaded\n\ > +automatically when the inferior begins execution, when the dynamic linker\n\ > +informs gdb that a new library has been loaded, or when attaching to the\n\ > +inferior. Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > &setlist), > &showlist); > } > Index: osfsolib.c > =================================================================== > RCS file: /cvs/src/src/gdb/osfsolib.c,v > retrieving revision 1.10 > diff -u -p -r1.10 osfsolib.c > --- osfsolib.c 2001/09/14 00:40:29 1.10 > +++ osfsolib.c 2001/10/27 19:32:36 > @@ -924,13 +924,13 @@ _initialize_solib (void) > "Status of loaded shared object libraries."); > > add_show_from_set > - (add_set_cmd ("auto-solib-add", class_support, var_zinteger, > + (add_set_cmd ("auto-solib-add", class_support, var_boolean, > (char *) &auto_solib_add, > "Set autoloading of shared library symbols.\n\ > -If nonzero, symbols from all shared object libraries will be loaded\n\ > -automatically when the inferior begins execution or when the dynamic linker\n\ > -informs gdb that a new library has been loaded. Otherwise, symbols\n\ > -must be loaded manually, using `sharedlibrary'.", > +If \"on\", symbols from all shared object libraries will be loaded\n\ > +automatically when the inferior begins execution, when the dynamic linker\n\ > +informs gdb that a new library has been loaded, or when attaching to the\n\ > +inferior. Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > &setlist), > &showlist); > } > Index: pa64solib.c > =================================================================== > RCS file: /cvs/src/src/gdb/pa64solib.c,v > retrieving revision 1.11 > diff -u -p -r1.11 pa64solib.c > --- pa64solib.c 2001/03/06 08:21:11 1.11 > +++ pa64solib.c 2001/10/27 19:32:37 > @@ -89,20 +89,20 @@ static struct so_list *so_list_head; > shared objects on the so_list_head list. (When we say size, here > we mean of the information before it is brought into memory and > potentially expanded by GDB.) When adding a new shlib, this value > - is compared against the threshold size, held by auto_solib_add > - (in megabytes). If adding symbols for the new shlib would cause > - the total size to exceed the threshold, then the new shlib's symbols > - are not loaded. */ > + is compared against a threshold size, held by auto_solib_limit (in > + megabytes). If adding symbols for the new shlib would cause the > + total size to exceed the threshold, then the new shlib's symbols > + are not loaded. */ > static LONGEST pa64_solib_total_st_size; > > /* When the threshold is reached for any shlib, we refuse to add > symbols for subsequent shlibs, even if those shlibs' symbols would > - be small enough to fit under the threshold. (Although this may > + be small enough to fit under the threshold. Although this may > result in one, early large shlib preventing the loading of later, > - smalller shlibs' symbols, it allows us to issue one informational > + smaller shlibs' symbols, it allows us to issue one informational > message. The alternative, to issue a message for each shlib whose > symbols aren't loaded, could be a big annoyance where the threshold > - is exceeded due to a very large number of shlibs.) */ > + is exceeded due to a very large number of shlibs. */ > static int pa64_solib_st_size_threshold_exceeded; > > /* When adding fields, be sure to clear them in _initialize_pa64_solib. */ > @@ -368,7 +368,7 @@ pa64_solib_load_symbols (struct so_list > > > /* Add symbols from shared libraries into the symtab list, unless the > - size threshold (specified by auto_solib_add, in megabytes) would > + size threshold specified by auto_solib_limit (in megabytes) would > be exceeded. */ > > void > @@ -886,28 +886,37 @@ _initialize_pa64_solib (void) > "Load shared object library symbols for files matching REGEXP."); > add_info ("sharedlibrary", pa64_sharedlibrary_info_command, > "Status of loaded shared object libraries."); > + > add_show_from_set > - (add_set_cmd ("auto-solib-add", class_support, var_zinteger, > + (add_set_cmd ("auto-solib-add", class_support, var_boolean, > (char *) &auto_solib_add, > - "Set autoloading size threshold (in megabytes) of shared library symbols.\n\ > -If nonzero, symbols from all shared object libraries will be loaded\n\ > -automatically when the inferior begins execution or when the dynamic linker\n\ > -informs gdb that a new library has been loaded, until the symbol table\n\ > -of the program and libraries exceeds this threshold.\n\ > -Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > + "Set autoloading of shared library symbols.\n\ > +If \"on\", symbols from all shared object libraries will be loaded\n\ > +automatically when the inferior begins execution, when the dynamic linker\n\ > +informs gdb that a new library has been loaded, or when attaching to the\n\ > +inferior. Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > + &setlist), > + &showlist); > + > + add_show_from_set > + (add_set_cmd ("auto-solib-limit", class_support, var_zinteger, > + (char *) &auto_solib_limit, > + "Set threshold (in Mb) for autoloading shared library symbols.\n\ > +When shared library autoloading is enabled, new libraries will be loaded\n\ > +only until the total size of shared library symbols exceeds this\n\ > +threshold in megabytes. Is ignored when using `sharedlibrary'.", > &setlist), > &showlist); > > - /* ??rehrauer: On HP-UX, the kernel parameter MAXDSIZ limits how much > - data space a process can use. We ought to be reading MAXDSIZ and > - setting auto_solib_add to some large fraction of that value. If > - not that, we maybe ought to be setting it smaller than the default > - for MAXDSIZ (that being 64Mb, I believe). However, [1] this threshold > - is only crudely approximated rather than actually measured, and [2] > - 50 Mbytes is too small for debugging gdb itself. Thus, the arbitrary > - 100 figure. > - */ > - auto_solib_add = 100; /* Megabytes */ > + /* ??rehrauer: On HP-UX, the kernel parameter MAXDSIZ limits how > + much data space a process can use. We ought to be reading > + MAXDSIZ and setting auto_solib_limit to some large fraction of > + that value. If not that, we maybe ought to be setting it smaller > + than the default for MAXDSIZ (that being 64Mb, I believe). > + However, [1] this threshold is only crudely approximated rather > + than actually measured, and [2] 50 Mbytes is too small for > + debugging gdb itself. Thus, the arbitrary 100 figure. */ > + auto_solib_limit = 100; /* Megabytes */ > > pa64_solib_restart (); > } > @@ -1157,8 +1166,9 @@ add_to_solist (boolean from_tty, char *d > st_size = pa64_solib_sizeof_symbol_table (dll_path); > pa64_solib_st_size_threshhold_exceeded = > !from_tty > + && auto_solib_add > && ( (st_size + pa64_solib_total_st_size) > - > (auto_solib_add * (LONGEST)1000000)); > + > (auto_solib_limit * (LONGEST)1000000)); > if (pa64_solib_st_size_threshhold_exceeded) > { > pa64_solib_add_solib_objfile (new_so, dll_path, from_tty, 1); > Index: solib.c > =================================================================== > RCS file: /cvs/src/src/gdb/solib.c,v > retrieving revision 1.43 > diff -u -p -r1.43 solib.c > --- solib.c 2001/09/14 00:40:29 1.43 > +++ solib.c 2001/10/27 19:32:38 > @@ -841,13 +841,13 @@ _initialize_solib (void) > "Unload all shared object library symbols."); > > add_show_from_set > - (add_set_cmd ("auto-solib-add", class_support, var_zinteger, > + (add_set_cmd ("auto-solib-add", class_support, var_boolean, > (char *) &auto_solib_add, > "Set autoloading of shared library symbols.\n\ > -If nonzero, symbols from all shared object libraries will be loaded\n\ > -automatically when the inferior begins execution or when the dynamic linker\n\ > -informs gdb that a new library has been loaded. Otherwise, symbols\n\ > -must be loaded manually, using `sharedlibrary'.", > +If \"on\", symbols from all shared object libraries will be loaded\n\ > +automatically when the inferior begins execution, when the dynamic linker\n\ > +informs gdb that a new library has been loaded, or when attaching to the\n\ > +inferior. Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > &setlist), > &showlist); > > Index: somsolib.c > =================================================================== > RCS file: /cvs/src/src/gdb/somsolib.c,v > retrieving revision 1.14 > diff -u -p -r1.14 somsolib.c > --- somsolib.c 2001/10/24 01:19:12 1.14 > +++ somsolib.c 2001/10/27 19:32:40 > @@ -161,11 +161,10 @@ static struct so_list *so_list_head; > shared objects on the so_list_head list. (When we say size, here > we mean of the information before it is brought into memory and > potentially expanded by GDB.) When adding a new shlib, this value > - is compared against the threshold size, held by auto_solib_add > + is compared against the threshold size, held by auto_solib_limit > (in megabytes). If adding symbols for the new shlib would cause > - the total size to exceed the threshold, then the new shlib's symbols > - are not loaded. > - */ > + the total size to exceed the threshold, then the new shlib's > + symbols are not loaded. */ > static LONGEST som_solib_total_st_size; > > /* When the threshold is reached for any shlib, we refuse to add > @@ -403,7 +402,7 @@ som_solib_load_symbols (struct so_list * > > > /* Add symbols from shared libraries into the symtab list, unless the > - size threshold (specified by auto_solib_add, in megabytes) would > + size threshold specified by auto_solib_limit (in megabytes) would > be exceeded. */ > > void > @@ -778,12 +777,13 @@ som_solib_add (char *arg_string, int fro > st_size = som_solib_sizeof_symbol_table (name); > som_solib_st_size_threshold_exceeded = > !from_tty && > - ((st_size + som_solib_total_st_size) > (auto_solib_add * (LONGEST) 1000000)); > + auto_solib_add && > + ((st_size + som_solib_total_st_size) > (auto_solib_limit * (LONGEST) 1000000)); > > if (som_solib_st_size_threshold_exceeded) > { > if (!threshold_warning_given) > - warning ("Symbols for some libraries have not been loaded, because\ndoing so would exceed the size threshold specified by auto-solib-add.\nTo manually load symbols, use the 'sharedlibrary' command.\nTo raise the threshold, set auto-solib-add to a larger value and rerun\nthe program.\n"); > + warning ("Symbols for some libraries have not been loaded, because\ndoing so would exceed the size threshold specified by auto-solib-limit.\nTo manually load symbols, use the 'sharedlibrary' command.\nTo raise the threshold, set auto-solib-limit to a larger value and rerun\nthe program.\n"); > threshold_warning_given = 1; > > /* We'll still make note of this shlib, even if we don't > @@ -1571,28 +1571,37 @@ _initialize_som_solib (void) > "Load shared object library symbols for files matching REGEXP."); > add_info ("sharedlibrary", som_sharedlibrary_info_command, > "Status of loaded shared object libraries."); > + > add_show_from_set > - (add_set_cmd ("auto-solib-add", class_support, var_zinteger, > + (add_set_cmd ("auto-solib-add", class_support, var_boolean, > (char *) &auto_solib_add, > - "Set autoloading size threshold (in megabytes) of shared library symbols.\n\ > -If nonzero, symbols from all shared object libraries will be loaded\n\ > -automatically when the inferior begins execution or when the dynamic linker\n\ > -informs gdb that a new library has been loaded, until the symbol table\n\ > -of the program and libraries exceeds this threshold.\n\ > -Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > + "Set autoloading of shared library symbols.\n\ > +If \"on\", symbols from all shared object libraries will be loaded\n\ > +automatically when the inferior begins execution, when the dynamic linker\n\ > +informs gdb that a new library has been loaded, or when attaching to the\n\ > +inferior. Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > &setlist), > &showlist); > > - /* ??rehrauer: On HP-UX, the kernel parameter MAXDSIZ limits how much > - data space a process can use. We ought to be reading MAXDSIZ and > - setting auto_solib_add to some large fraction of that value. If > - not that, we maybe ought to be setting it smaller than the default > - for MAXDSIZ (that being 64Mb, I believe). However, [1] this threshold > - is only crudely approximated rather than actually measured, and [2] > - 50 Mbytes is too small for debugging gdb itself. Thus, the arbitrary > - 100 figure. > - */ > - auto_solib_add = 100; /* Megabytes */ > + add_show_from_set > + (add_set_cmd ("auto-solib-limit", class_support, var_zinteger, > + (char *) &auto_solib_limit, > + "Set threshold (in Mb) for autoloading shared library symbols.\n\ > +When shared library autoloading is enabled, new libraries will be loaded\n\ > +only until the total size of shared library symbols exceeds this\n\ > +threshold in megabytes. Is ignored when using `sharedlibrary'.", > + &setlist), > + &showlist); > + > + /* ??rehrauer: On HP-UX, the kernel parameter MAXDSIZ limits how > + much data space a process can use. We ought to be reading > + MAXDSIZ and setting auto_solib_limit to some large fraction of > + that value. If not that, we maybe ought to be setting it smaller > + than the default for MAXDSIZ (that being 64Mb, I believe). > + However, [1] this threshold is only crudely approximated rather > + than actually measured, and [2] 50 Mbytes is too small for > + debugging gdb itself. Thus, the arbitrary 100 figure. */ > + auto_solib_limit = 100; /* Megabytes */ > > som_solib_restart (); > } > Index: symfile.c > =================================================================== > RCS file: /cvs/src/src/gdb/symfile.c,v > retrieving revision 1.40 > diff -u -p -r1.40 symfile.c > --- symfile.c 2001/10/24 17:13:12 1.40 > +++ symfile.c 2001/10/27 19:32:42 > @@ -177,27 +177,27 @@ int symbol_reloading = SYMBOL_RELOADING_ > int symbol_reloading = 0; > #endif > > -/* If non-zero, then on HP-UX (i.e., platforms that use somsolib.c), > - this variable is interpreted as a threshhold. If adding a new > - library's symbol table to those already known to the debugger would > - exceed this threshhold, then the shlib's symbols are not added. > - > - If non-zero on other platforms, shared library symbols will be added > - automatically when the inferior is created, new libraries are loaded, > - or when attaching to the inferior. This is almost always what users > - will want to have happen; but for very large programs, the startup > - time will be excessive, and so if this is a problem, the user can > - clear this flag and then add the shared library symbols as needed. > - Note that there is a potential for confusion, since if the shared > +/* If non-zero, shared library symbols will be added automatically > + when the inferior is created, new libraries are loaded, or when > + attaching to the inferior. This is almost always what users will > + want to have happen; but for very large programs, the startup time > + will be excessive, and so if this is a problem, the user can clear > + this flag and then add the shared library symbols as needed. Note > + that there is a potential for confusion, since if the shared > library symbols are not loaded, commands like "info fun" will *not* > - report all the functions that are actually present. > - > - Note that HP-UX interprets this variable to mean, "threshhold size > - in megabytes, where zero means never add". Other platforms interpret > - this variable to mean, "always add if non-zero, never add if zero." > - */ > + report all the functions that are actually present. */ > > int auto_solib_add = 1; > + > +/* For systems that support it, a threshold size in megabytes. If > + automatically adding a new library's symbol table to those already > + known to the debugger would cause the total shared library symbol > + size to exceed this threshhold, then the shlib's symbols are not > + added. The threshold is ignored if the user explicitly asks for a > + shlib to be added, such as when using the "sharedlibrary" > + command. */ > + > +int auto_solib_limit; > > > /* Since this function is called from within qsort, in an ANSI environment > Index: symfile.h > =================================================================== > RCS file: /cvs/src/src/gdb/symfile.h,v > retrieving revision 1.9 > diff -u -p -r1.9 symfile.h > --- symfile.h 2001/03/06 08:21:17 1.9 > +++ symfile.h 2001/10/27 19:32:43 > @@ -218,18 +218,27 @@ extern char *obconcat (struct obstack *o > > /* Variables */ > > -/* whether to auto load solibs at startup time: 0/1. > +/* If non-zero, shared library symbols will be added automatically > + when the inferior is created, new libraries are loaded, or when > + attaching to the inferior. This is almost always what users will > + want to have happen; but for very large programs, the startup time > + will be excessive, and so if this is a problem, the user can clear > + this flag and then add the shared library symbols as needed. Note > + that there is a potential for confusion, since if the shared > + library symbols are not loaded, commands like "info fun" will *not* > + report all the functions that are actually present. */ > > - On all platforms, 0 means "don't auto load". > - > - On HP-UX, > 0 means a threshhold, in megabytes, of symbol table which will > - be auto loaded. When the cumulative size of solib symbol table exceeds > - this threshhold, solibs' symbol tables will not be loaded. > +extern int auto_solib_add; > > - On other platforms, > 0 means, "always auto load". > - */ > +/* For systems that support it, a threshold size in megabytes. If > + automatically adding a new library's symbol table to those already > + known to the debugger would cause the total shared library symbol > + size to exceed this threshhold, then the shlib's symbols are not > + added. The threshold is ignored if the user explicitly asks for a > + shlib to be added, such as when using the "sharedlibrary" > + command. */ > > -extern int auto_solib_add; > +extern int auto_solib_limit; > > /* From symfile.c */ > > Index: xcoffsolib.c > =================================================================== > RCS file: /cvs/src/src/gdb/xcoffsolib.c,v > retrieving revision 1.10 > diff -u -p -r1.10 xcoffsolib.c > --- xcoffsolib.c 2001/07/19 04:58:17 1.10 > +++ xcoffsolib.c 2001/10/27 19:32:43 > @@ -184,13 +184,13 @@ _initialize_solib (void) > "Status of loaded shared object libraries"); > > add_show_from_set > - (add_set_cmd ("auto-solib-add", class_support, var_zinteger, > + (add_set_cmd ("auto-solib-add", class_support, var_boolean, > (char *) &auto_solib_add, > "Set autoloading of shared library symbols.\n\ > -If nonzero, symbols from all shared object libraries will be loaded\n\ > -automatically when the inferior begins execution or when the dynamic linker\n\ > -informs gdb that a new library has been loaded. Otherwise, symbols\n\ > -must be loaded manually, using `sharedlibrary'.", > +If \"on\", symbols from all shared object libraries will be loaded\n\ > +automatically when the inferior begins execution, when the dynamic linker\n\ > +informs gdb that a new library has been loaded, or when attaching to the\n\ > +inferior. Otherwise, symbols must be loaded manually, using `sharedlibrary'.", > &setlist), > &showlist); > } > Index: doc/gdb.texinfo > =================================================================== > RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v > retrieving revision 1.51 > diff -u -p -r1.51 gdb.texinfo > --- gdb.texinfo 2001/09/12 19:49:52 1.51 > +++ gdb.texinfo 2001/10/27 19:32:59 > @@ -8965,7 +8965,33 @@ automatically loads the symbols at the t > @c FIXME...symbols---eg in a break cmd---assuming they are from a shared > @c FIXME...lib; check this from time to time when updating manual > > +There are times however when you may wish to not automatically load > +symbol definitions from shared libraries, such as when they are > +particularly large or there are many of them. > + > +To control the automatic loading of shared library symbols, use the > +commands: > + > @table @code > +@kindex set auto-solib-add > +@item set auto-solib-add @var{mode} > +Set the shared library symbol autoloading mode. If it is @code{on}, > +symbols from all shared object libraries will be loaded automatically > +when the inferior begins execution, you attach to an independently > +started inferior, or when the dynamic linker informs @value{GDBN} that a > +new library has been loaded. Otherwise if it is @code{off}, symbols > +must be loaded manually, using the @code{sharedlibrary} command. The > +default value is @code{on}. > + > +@kindex show auto-solib-add > +@item show auto-solib-add > +Display the current autoloading mode. > +@end table > + > +To explicitly load shared library symbols use the @code{sharedlibrary} > +command: > + > +@table @code > @kindex info sharedlibrary > @kindex info share > @item info share > @@ -8984,9 +9010,12 @@ required by your program for a core file > loaded. > @end table > > -On HP-UX systems, @value{GDBN} detects the loading of a shared library > -and automatically reads in symbols from the newly loaded library, up to > -a threshold that is initially set but that you can modify if you wish. > +On some systems, such as HP-UX systems, @value{GDBN} supports > +autoloading shared library symbols until a limiting threshold size is > +reached. This provides the benefit of allowing autoloading to remain on > +by default while avoiding attempting to autoload excessively large > +shared libraries, up to a threshold that is initially set but that you > +can modify if you wish. > > Beyond that threshold, symbols from shared libraries must be explicitly > loaded. To load these symbols, use the command @code{sharedlibrary > @@ -8996,18 +9025,17 @@ automatically by @value{GDBN} and need n > To display or set the threshold, use the commands: > > @table @code > -@kindex set auto-solib-add > -@item set auto-solib-add @var{threshold} > +@kindex set auto-solib-limit > +@item set auto-solib-limit @var{threshold} > Set the autoloading size threshold, in megabytes. If @var{threshold} is > -nonzero, symbols from all shared object libraries will be loaded > -automatically when the inferior begins execution or when the dynamic > -linker informs @value{GDBN} that a new library has been loaded, until > -the symbol table of the program and libraries exceeds this threshold. > -Otherwise, symbols must be loaded manually, using the > -@code{sharedlibrary} command. The default threshold is 100 megabytes. > +nonzero and shared library autoloading is enabled, symbols from all > +shared object libraries will be loaded until the total size of the > +loaded shared library symbols exceeds this threshold. Otherwise, > +symbols must be loaded manually, using the @code{sharedlibrary} command. > +The default threshold is 100 megabytes. > > -@kindex show auto-solib-add > -@item show auto-solib-add > +@kindex show auto-solib-limit > +@item show auto-solib-limit > Display the current autoloading size threshold, in megabytes. > @end table >