MS Installation Guide
Step 1: Unbundling Downloaded Files
Step 2: Running the Install Program
Step 3: Installing a Demo License
Setting the License File Variable
Step 4: Configuring Your Environment
Installing or Changing a Regular License
Planning for a Regular License
Choosing a License Server
Finding a License Server Host ID
Creating a FLEXlm User Account
Installing your Permanent License
Accessing a License Server
Starting the License Manager Manually
Stopping the License Manager
Testing the License Manager
Starting the License Manager When the System Boots
Choosing a Standalone FLEXlm Version
Starting the Install Program
More FLEXlm Information
Installing License Keys
Step 1: Locating the FLEXlm License Server Directory
Step 2: Deleting Older License Keys
Step 3: Adding New License Keys
Step 4: Starting and Stopping the License Server
Step 5: Configuring MemoryScape to Use the License Server
Reporting Problems with License Installation
Uninstalling MemoryScape
MemoryScape
Checking for Problems
Programs and Memory
Behind the Scenes
Your Program's Data
The Stack
The Heap
Finding Heap Allocation Problems
Finding Heap Deallocation Problems
realloc() Problems
Finding Memory Leaks
Starting MemoryScape
Using MemoryScape Options
Preloading MemoryScape
Understanding How Your Program is Using Memory
Finding free() and realloc() Problems
Event and Error Notification
Types of Problems
Freeing Stack Memory
Freeing bss Data
Freeing Data Section Memory
Freeing Memory That Is Already Freed
Tracking realloc() Problems
Freeing the Wrong Address
Finding Memory Leaks
Fixing Dangling Pointer Problems
Dangling Pointers
Batch Scripting and Using the CLI
Using the \u0096dheap Command
dheap Example
dheap
Notification When free Problems Occur
Showing Backtrace Information: dheap \u0096backtrace:
Guarding Memory Blocks: dheap -guards
Memory Reuse: dheap \u0096hoard
Writing Heap Information: dheap \u0096export
Filtering Heap Information: dheap \u0096filter
Checking for Dangling Pointers: dheap \u0096is_dangling:
Detecting Leaks: dheap \u0096leaks
Block Painting: dheap \u0096paint
Red Zones Bounds Checking: dheap \u0096red_zones
Deallocation Notification: dheap \u0096tag_alloc
TVHEAP_ARGS
Examining Memory
Block Properties
Memory Contents Tab.
Additional Memory Block Information
Filtering
Using Guard Blocks
Using Red Zones
Using Guard Blocks and Red Zones
Block Painting
Hoarding
Example 1: Finding a Multithreading Problem
Example 2: Finding Dangling Pointer References
Debugging with TotalView
Memory Tasks
Task 1: Getting Started
Task 1 > Starting MemoryScape
Task 1 > Adding Programs and Files to MemoryScape
Task 1 > Attaching to Files and Adding Core Files
Task 1 > Stopping Before Finishing Execution
Task 1 > Exporting Memory Data
Task 1 > MemoryScape Information
Task 1 > Where to Go Next
Task 2: Adding Parallel Programs
Task 1 > Where to Go Next
Task 3: Setting MemoryScape Options
Task 3 > Basic Options
Task 3 > Advanced Options
Task 3 > Halt execution at process exit
Task 3 > Halt execution on memory event or error
Task 3 > Guard allocated memory
Task 3 > Use Red Zones to find memory access violations
Restricting Red Zones
Customizing Red Zones
Task 3 > Paint memory
Task 3 > Hoard deallocated memory
Task 3 > Where to Go Next
Task 4: Controlling Program Execution
Task 4 > Controlling Program Execution from the Home | Summary Screen
Task 4 > Controlling Program Execution from the Manage Processes Screen
Task 4 > Controlling Program Execution from a Context Menu
Task 4 > Where to Go Next
Task 5: Seeing Memory Usage
Task 5 > Information Types
Task 5 > Process and Library Reports
Task 5 > Chart Report
Task 5 > Where to Go Next
Task 6: Using Runtime Events
Task 6 > Error Notifications
Task 6 > Deallocation and Reuse Notifications
Task 6 > Where to Go Next
Task 7: Graphically Viewing the Heap
Task 7 > Window Sections
Task 7 > Block Information
Task 7 > Bottom Tabbed Areas
Task 7 > Where to Go Next
Task 8: Obtaining Detailed Heap Information
Task 8 > Heap Status Source Report
Task 8 > Heap Status Source Backtrace Report
Task 8 > Where to Go Next
Task 9: Seeing Leaks
Task 10: Filtering Reports
Task 10 > Adding, Deleting, Enabling and Disabling Filters
Task 10 > Adding and Editing Filters
Task 10 > Where to Go Next
Task 11: Viewing Corrupted Memory
Examining Corrupted Memory Blocks
Viewing Memory Contents
Task 12: Saving and Restoring Memory State Information
Task 12 > Procedures for Exporting and Adding Memory Data
Task 12 > Using Saved State Information
Task 12 > Where to Go Next
Task 13: Comparing Memory
Task 13 > Overview
Task 13 > Obtaining a Comparison
Memory Comparison Report
Task 13 > Where to Go Next
Task 14: Saving Memory Information as HTML
Task 14 > Saving Report Information
Task 14 > Viewing a Sample HTML File
Task 15: Hoarding Deallocated Memory
Task 16: Painting Memory
MemoryScape Scripting
Creating Programs for Memory Debugging
Compiling Programs
Linking with the dbfork Library
dbfork on IBM AIX on RS/6000 Systems
dbfork and Linux or Mac OS X
dbfork and SunOS 5 SPARC
Starting MemoryScape
Attaching to Programs
Setting Up MPI Debugging Sessions
Debugging MPI Programs
Debugging MPICH Applications
Starting MPI Issues
Debugging IBM MPI Parallel Environment (PE) Applications
Debugging LAM/MPI Applications
Debugging QSW RMS Applications
Debugging Sun MPI Applications
Linking Your Application with the Agent
Using env to Insert the Agent
Installing tvheap_mr.a on AIX
LIBPATH and Linking
Using MemoryScape in Selected Environments
MPICH
IBM PE
RMS MPI
MemoryScape Command-Line Options
Invoking MemoryScape
Syntax
Options
MemoryScape Help
Add Core File
Add Memory Debugging File
Add New Program
Add New Program (Parallel)
Add Programs to Your MemoryScape Session
Attach to a Running Program
Block Properties
Configure Process Signal Actions
Corrupted Memory Report
Enter Block Address
Event Reports
Export Memory Data
File > Preferences (Memory Debugging)
File > Preferences (Remote Debugging)
File > Search Path
Filters: Add & Edit
Create Heap Status Reports
Create Leak Detection Report
Create Reports
Generate a Memory Usage Report
Generating ...
Heap Status Graphical Report
Heap Status Backtrace Report
Heap Status Source Report
Leak Detection Backtrace Report
Leak Detection Source Report
Manage Processes and Files
Memory Comparison Report
Memory Debugging Data Filters
Memory Debugging Options: Advanced
Memory Debugging Options: Basic
Memory Debugging Session
Memory Event Notification
Memory Usage Chart Report
Memory Usage Library Report
Memory Usage Process Report
Process Event: About to Exit
Process Event by Event
Process Event by Process
Process Properties
Program Created
Red Zones: Customizing
Red Zones: Restricting
Save Report
Select Processes To Use For The Report
Select Processes
Window > Duplicate
Creating Programs for Memory Debugging
Compiling Programs
Linking with the dbfork Library
dbfork on IBM AIX on RS/6000 Systems
Linking C++ Programs with dbfork
dbfork and Linux or Mac OS X
dbfork and SunOS 5 SPARC
Starting MemoryScape
Attaching to Programs
Setting Up MPI Debugging Sessions
Debugging MPI Programs
Debugging MPICH Applications
Starting MemoryScape on an MPICH Job
Attaching to an MPICH Job
Using MPICH P4 procgroup Files
Starting MPI Issues
Debugging IBM MPI Parallel Environment (PE) Applications
Using Switch-Based Communications
Performing a Remote Login
Starting MemoryScape on a PE Program
Attaching to a PE Job
Debugging LAM/MPI Applications
Debugging QSW RMS Applications
Starting MemoryScape on an RMS Job
Attaching to an RMS Job
Debugging Sun MPI Applications
Attaching to a Sun MPI Job
Linking Your Application with the Agent
Using env to Insert the Agent
Installing tvheap_mr.a on AIX
LIBPATH and Linking
Using MemoryScape in Selected Environments
MPICH
IBM PE
RMS MPI
tvdsvr Command and Options
tvdsvr Replacement Characters
MemoryScape New Features
New Platforms and Compilers
New and Changed Features
Platform Guide
Apple Macintosh
Cray XT Series
IBM
Myrinet Support
SiCortex
Sun Solaris
Linux
Reference Guide
CLI Commands
alias
capture
dactions
dassign
dattach
dbarrier
dbreak
dcache
dcheckpoint
dcont
ddelete
ddetach
ddisable
ddlopen
ddown
denable
dexamine
dflush
dfocus
dga
dgo
dgroups
dhalt
dheap
dhistory
dhold
dkill
dlappend
dlist
dload
dmstat
dnext
dnexti
dout
dprint
dptsets
drerun
drestart
drun
dset
dstatus
dstep
dstepi
dunhold
dunset
duntil
dup
dwait
dwatch
dwhat
dwhere
dworker
exit
help
quit
spurs
spurs [ help ]
spurs add [ directory directory-list ]
spurs break [ spu-image-name source-location-expression ]
spurs delete breakpoint-id-list
spurs info [ directory | break ]
spurs print
spurs scan
stty
unalias
CLI Namespace Commands
actionpoint
dec2hex
dll
errorCodes
expr
focus_groups
focus_processes
focus_threads
group
hex2dec
process
read_symbols
respond
scope
source_process_startup
symbol
thread
type
type_transformation
TotalView Variables
Top-Level (::) Namespace
TV:: Namespace
TV::MEMDEBUG:: Namespace
TV::GUI:: Namespace
Batch Debugging Using tvscript
tvscript Command Syntax
tvscript External Script Files
Example tvscript Script File
Creating Type Transformations
Why Type Transformations
Creating Structure and Class Transformations
Transforming Structures
build_struct_transform Function
Type Transformation Expressions
Using Type Transformations
TotalView Command Syntax
Command-line Options
TotalView Debugger Server Command Syntax
Replacement Characters
Platforms and Compilers
Compiling with Debugging Symbols
Apple Running Mac OS X
HP Tru64 UNIX
HP-UX for IA-64
IBM AIX on RS/6000 Systems
IBM Bluegene
IBM Power Linux
Linux Running on an x86 Platform
Linux Running on an x86-64 Platform
Linux Running on an Itanium Platform
SGI IRIX-MIPS Systems
Sun Solaris
Using gnu_debuglink Files
Total View Command-Line Options and CLI State Variables
Searching for the gnu_debug_link File
Using Exception Data on Tru64 UNIX
Linking with the dbfork Library
Linking with HP-UX
dbfork on IBM AIX on RS/6000 Systems
Linking C++ Programs with dbfork
Linux or Mac OS X
SGI IRIX6-MIPS
SunOS 5 SPARC
Operating Systems
Supported Operating Systems
Mounting the /proc File System
Mounting /proc HP Tru64 UNIX and SunOS 5
Mounting proc SGI IRIX
Swap Space
Swap Space on HP Tru64 UNIX
Swap Space on HP HP-UX
Maximum Data Size
Swap Space on IBM AIX
Swap Space on Linux
Swap Space on SGI IRIX
Swap Space on SunOS 5
Shared Libraries
Changing Linkage Table Entries and LD_BIND_NOW
Using Shared Libraries on HP-UX
Debugging Your Program's Dynamically Loaded Libraries
Known Limitations
Remapping Keys
Expression System
Expression System on HP Alpha Tru64 UNIX
Expression System on IBM AIX
Expression System on SGI IRIX
Architectures
AMD and Intel x86-64
x86-64 General Registers
x86-64 Floating-Point Registers
x86-64 FPCR Register
Using the x86-64 FPCR Register
x86-64 FPSR Register
x86-64 MXCSR Register
HP Alpha
Alpha Floating-Point Registers
Alpha FPCR Register
HP PA-RISC
PA-RISC General Registers
PA-RISC Process Status Word
PA-RISC Floating-Point Registers
PA-RISC Floating-Point Format
IBM Cell Broadband Engine
Power Architectures
Power General Registers
Power MSR Register
Power Floating-Point Registers
Power FPSCR Register
Using the Power FPSCR Register
Intel IA-64
Intel IA-64 General Registers
IA-64 Processor Status Register Fields (PSR)
Current Frame Marker Register Fields (CFM)
Register Stack Configuration Register Fields (RSC)
Previous Function State Register Fields (PFS)
Floating Point Registers
Floating Point Status Register Fields
Intel x86
Intel x86 General Registers
Intel x86 Floating-Point Registers
Intel x86 FPCR Register
Using the Intel x86 FPCR Register
Intel x86 FPSR Register
Intel x86 MXCSR Register
SGI MIPS
MIPS General Registers
MIPS SR Register
MIPS Floating-Point Registers
MIPS FCSR Register
Using the MIPS FCSR Register
MIPS Delay Slot Instructions
Sun SPARC
SPARC General Registers
SPARC PSR Register
SPARC Floating-Point Registers
SPARC FPSR Register
Using the SPARC FPSR Register
MPI Startup
Customizing Your Parallel Configuration