Controlling Loading Libraries Using the CLI
Stopping Before Execution Begins
*Ask to stop when loading dynamic libraries
By default, TotalView does not prompt w12
hether to stop execution when loading dynamic libraries. To change this default, set the variable TV::ask_on_dlopen to true or start TotalView using the command line options -ask_on_dlopen and -no_ask_on_dlopen.
 
dset TV::ask_on_dlopen true | false
 
or start TotalView using the command line option:
 
totalview -ask_on_dlopen | -no_ask_on_dlopen
 
If TV::ask_on_dlopen is set to true, TotalView then uses the shared library path and file suffix to determine whether to launch the prompt:
*Stop for specified file suffixes
Provide a list of library suffixes that will result in a query to stop the process when loaded, using the TV::dll_stop_suffix variable. Separate each item by a colon.
dset TV::dll_stop_suffix foo:bar:bas
By default, this list is empty. This list is global and applies to all processes in this debugging session.
You can also start TotalView using the command line option:
totalview -dll_stop_suffix list
 
*Don’t stop for specified file path prefixes
Use the TV::dll_ignore_prefix variable to identify file prefixes hat will not result in a query to stop the process when loaded.
 
dset TV::dll_ignore_prefix foo:bar:bas
By default, this list contains these prefixes: /lib/:/usr/lib/:/usr/lpp/:/usr/ccs/lib/:/usr/dt/lib/:/tmp/.
The list is global and it applies to all processes you examine in this debugging session.
Symbol Loading
Three variables control whether TotalView reads loader and debugging symbols when it opens a library:
*To read all symbols
The default is to read all symbols, controlled by the variable TV::dll_read_all_symbols. To exclude symbols, set this variable to a set of colon-separated list of library names:
 
dset TV::dll_read_all_symbols list
*To read only loader symbols
Use the variable TV::dll_read_loader_symbols_only to define libraries for which TotalView should read only loader symbols. For example, if your program uses a number of large shared libraries that you will not be debugging, you might set this to *. You would then enter the names of DLLs that you need to debug using TV::dll_read_all_symbols.
*To read no symbols
If you must increase performance, you can use the variable TV::dll_read_no_symbols to name libraries for which TotalView should read no symbols.
When reading a library, TotalView looks at these lists in the following order:
1. all symbols
2. loader symbols
3. no symbols
That is, TotalView processes these lists in order. This means that if you name a library in more than one list, TotalView ignores the second (or third) references to the library.
When entering library names, you can use the * and ? wildcard characters. For example:
*mystuff*
Matches ./lib/libmystuff.so as well as anything else that contains the mystuff string in its filename.
/home/myname/dev/*
Matches any library in the /home/myname/dev directory.
*
Matches every library that TotalView would read.
If your program stops in a library that has not had its symbols read, TotalView reads its symbols before reporting the error that caused execution to stop.
To automatically read a library’s symbols when TotalView stops, set the TV::auto_read_symbols_at_stop variable.