This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [RFA] Change auto-solib-add to boolean, add auto-solib-limit



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]