Changes approved by kev@cygnus.com, ezannoni@cygnus.com, eliz@is.elta.co.il.
authorFred Fish <fnf@specifix.com>
Tue, 30 Oct 2001 04:05:36 +0000 (04:05 +0000)
committerFred Fish <fnf@specifix.com>
Tue, 30 Oct 2001 04:05:36 +0000 (04:05 +0000)
  Changelog:

2001-10-27  Fred Fish  <fnf@redhat.com>

* 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.

* 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.

  doc/ChangeLog:

2001-10-28  Fred Fish  <fnf@redhat.com>

* gdb.texinfo (auto-solib-add): Change docs to match
implementation change.
(auto-solib-limit): Add docs for new variable.

gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/irix5-nat.c
gdb/osfsolib.c
gdb/pa64solib.c
gdb/solib.c
gdb/somsolib.c
gdb/symfile.c
gdb/symfile.h
gdb/xcoffsolib.c

index 8335659e03785b8a561a706a215473ba249162bc..cdbd53180063e1d19002731c54fbe4247b0845c4 100644 (file)
@@ -1,3 +1,39 @@
+2001-10-27  Fred Fish  <fnf@redhat.com>
+
+       * 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.
+
+       * 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.
+
 2001-10-21  Mark Kettenis  <kettenis@gnu.org>
 
        * config/i386/tm-i386v.h: Don't include "regcache.h".
index 86ea9664fa7d381584bab782dc233ce81e735b91..38d8abdfaee14f79530088e73d229521efc9007f 100644 (file)
@@ -1,3 +1,9 @@
+2001-10-28  Fred Fish  <fnf@redhat.com>
+
+       * gdb.texinfo (auto-solib-add): Change docs to match
+       implementation change.
+       (auto-solib-limit): Add docs for new variable.
+
 2001-10-15  Andrew Cagney  <ac131313@redhat.com>
 
        * gdbint.texinfo (Target Architecture Definition): Function
index b40de03f000f9e6a6d0116b235402d1994fd1f96..d4689775c99e310bbd7eb633c309d706c67b1820 100644 (file)
@@ -8965,6 +8965,31 @@ automatically loads the symbols at the time of the @code{shl_load} call.
 @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}
+If @var{mode} 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.  If @var{mode}
+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
@@ -8984,9 +9009,12 @@ required by your program for a core file or after typing @code{run}.  If
 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, but avoids autoloading excessively large shared libraries,
+up to a threshold that is initially set, but which 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 +9024,18 @@ automatically by @value{GDBN} and need not be specified.
 To display or set the threshold, use the commands:
 
 @table @code
-@kindex set auto-solib-add
-@item set auto-solib-add @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.
+@kindex set auto-solib-limit
+@item set auto-solib-limit @var{threshold}
+Set the autoloading size threshold, in an integral number of megabytes.
+If @var{threshold} is 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.
+@code{sharedlibrary} command.  The default threshold is 100 (i.e. 100
+Mb).
 
-@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
 
index 3c3284047cc6c36a9eb7d7d5a90730f66c64de57..2781bf3d1feb9a90f2f6adcb1858a4ff868cd0ed 100644 (file)
@@ -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 734cbc23ab5265ef0b8a2640866eae00e6118c4c..ac5c4de17c49f39b0026a45c78429e090bf594de 100644 (file)
@@ -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 cfafa2881701cca74df8b2805945a5ef7f98b803..e39d9e32c7899860e14dc122f9d3a59b15b9f037 100644 (file)
@@ -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 *so, char *name, int from_tty,
 
 
 /* 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 *dll_path,
   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 c43858e8b55e282a0f74b9d4f4878e06a2ecd225..a2f4c81d2529e8600af54ff443a51a3c912423ce 100644 (file)
@@ -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 77c54e1218e077b17ede9db40c262f25f3005437..f9807ab3ca3f273f33f899187a0c1fc8d194642f 100644 (file)
@@ -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 *so, char *name, int from_tty,
 
 
 /* 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 from_tty, struct target_ops *target)
       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 7f3fdc643f3d4c688fd62b5c0d5071efe3ad3ffb..010726de6ec8ae16852598a22380e95bc90bb705 100644 (file)
@@ -177,27 +177,27 @@ int symbol_reloading = SYMBOL_RELOADING_DEFAULT;
 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;
 \f
 
 /* Since this function is called from within qsort, in an ANSI environment
index 36447d7e526e207b38747bc8e139fb3475832c3f..a6bf3f6da8f16f891a936e2743bae6f22dbb6f27 100644 (file)
@@ -218,18 +218,27 @@ extern char *obconcat (struct obstack *obstackp, const char *, const char *,
 
                        /*   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 d6f15e5e7ccec6e667640dca6e582a23de6529f6..00e51f30ecaa21cc5aff429a8b2e337869e13cd0 100644 (file)
@@ -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);
 }