Using env to Insert the Agent
NOTE: The heap agent library path can be hard to determine. Use this CLI command to print its path:
puts $TV::hia_local_dir
When TotalView attaches to a process that is already running, the agent must already be associated with it. You can do this in two ways:
*Manually link the agent as described in previous sections.
*Start the program using env (see man env on your system). This pushes the agent into your program.
NOTE: Preloading cannot be used with Cray. For information on preloading with Cray, see Linking Your Application with the Agent.
 
Table 22 lists he variables required by each platform. The placeholder <hia_dir> represents the directory in which the agent is found.
 
Table 22: Variables by Platform for Preloading the Agent
Platform
Variable
Apple Mac OS X
DYLD_INSERT_LIBRARIES=<hia_dir>/libtvheap.dylib
Note: See Mac OS for detail on how this environment variable works.
IBM AIX
MALLOCTYPE=user:tvheap_mr.a
If you are already using MALLOCTYPE for another purpose, reassign its value to the variable TVHEAP_MALLOCTYPE and assign MALLOCTYPE as above; when the agent starts it will correctly pass on the options.
Linux
 
32-bit
LD_PRELOAD=<hia_dir>/libtvheap.so
64-bit
LD_PRELOAD=<hia_dir>/libtvheap_64.so
Sun
 
32-bit generic
LD_PRELOAD=<hia_dir>/libtvheap.so
32-bit specific
LD_PRELOAD_32=<hia_dir>/libtvheap.so
64-bit generic
LD_PRELOAD=<hia_dir>/libtvheap_64.so
64-bit specific
LD_PRELOAD_64=<hia_dir>/libtvheap_64.so
If the agent is the only library you are preloading, use the generic variable. Otherwise, use whichever variable was used for the other preloaded libraries.