The top controls allow you to control if TotalView should stop execution when your program and TotalView loads a named shared library. In most cases, you would do this so that you can set a breakpoint.
The bottom controls tell TotalView how much information is should read when it loads a shared library. (See “Symbol Loading”.)
Figure 14: Dynamic Libraries Page
The Default button at the bottom of this page sets all fields on this page to their initial values.Stopping Before Execution BeginsThe controls in the top area tell TotalView if it should ask you if it is alright to load dynamic libraries. If it is OK, you can indicate which libraries TotalView should ask questions about before loading and which it should just load.If selected, TotalView uses the shared library path and file suffix to determine if it should ask if it should stop processes that load a shared library. The decision it makes is based on what you type in the two text areas.Enter the suffixes that TotalView uses when it decides whether it will ask if it should stop the process when it loads a dynamic library. If the library being opened has a suffix that is on this list, TotalView asks if it should stop the process.Each suffix must reside on its own line. By default, this list is empty. This list is global and applies to all processes in this debugging session.Enter prefixes that TotalView uses when it decides whether it will ask if it should stop the process when it loads a dynamic library. If the shared library being opened has a prefix that is on this list, TotalView does not ask if should stop the process.Each prefix must be on its own line. By default, this list is empty. The list is global and it applies to all processes you examine in this debugging session.Symbol LoadingThe three items on the Load from these libraries list control whether TotalView reads loader and debugging symbols when it opens a library. Here’s what placing entries into these areas means:(default) TotalView reads all symbols. Only enter a library name if it is excluded by a wildcard in the loader symbols and no symbols areas.TotalView only reads a library’s loader symbols. 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 in the all symbols area.Only name libraries on this list if you really need to increase performance. If TotalView doesn’t load a library’s symbols, it may not be able to create a backtrace through this library.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.Matches ./lib/libmystuff.so as well as anything else that contains the mystuff string in its filename.Matches any library in the /home/myname/dev directory.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.You can tell TotalView that it should automatically read a library’s symbols when it stops by setting the TV::auto_read_symbol_at_stop variable.Load All Symbols in Stack Context Menu CommandIf you place the cursor in the Stack Trace Pane and click your right mouse button, TotalView displays the Load All Symbols in Stack command. Selecting this command tells TotalView to examine the stack trace for the current thread and finds any frames where the thread was executing in a library that has not had all its symbols read. If TotalView locates any libraries, it reads in their debugging symbols.
Figure 15: Load All Symbols in Stack Context Menu If, while reading in these libraries, it discovers other libraries that must be read in, it will also read in these additional symbols.
Rogue Wave Software, Inc. |
Voice: (303) 473-9118 |
rwonlinedocs@roguewave.com |