4. Viewing and Navigating To Code
5. Controlling Program Execution
6. Setting Breakpoints and Traces
8. Evaluating and Displaying Data
Capabilities of Runtime Checking
Turning On Memory Use and Memory Leak Checking
Turning On Memory Access Checking
Turning On All Runtime Checking
Understanding the Memory Access Error Report
Understanding the Memory Leak Report
Limiting the Number of Errors Reported
Using Suppression to Manage Errors
Using Runtime Checking on a Child Process
Using Fix and Continue With Runtime Checking
Runtime Checking Application Programming Interface
Using Runtime Checking in Batch Mode
Enabling Batch Mode Directly From dbx
Works Better With More Symbols and Debug Information
SIGSEGV and SIGALTSTACK Signals Are Restricted on x86 Platforms
Read From Array Out-of-Bounds (rob) Error
Read From Unallocated Memory (rua) Error
Read From Uninitialized Memory (rui) Error
Write to Array Out-of-Bounds Memory (wob) Error
Write to Read-Only Memory (wro) Error
Write to Unallocated Memory (wua) Error
Address in Register (air) Error
11. Debugging Multithreaded Applications
16. Debugging Fortran Using dbx
17. Debugging a Java Application With dbx
18. Debugging at the Machine-Instruction Level
19. Using dbx With the Korn Shell
Runtime checking works on an attached process with the exception that RUI cannot be detected if the affected memory has already been allocated. However, the process must have rtcaudit.so preloaded when it starts. If the process to which you are attaching is a 64-bit process, use the appropriate 64-bit rtcaudit.so, which is located at:
/installation_directory/lib/dbx/sparcv9/runtime/rtcaudit.so on 64-bit SPARC platforms
/installation_directory/lib/dbx/amd64/runtime/rtcaudit.so on AMD64 platforms
/installation_directory/lib/dbx/runtime/rtcaudit.so on 32-bit platforms
% setenv LD_AUDIT path-to-rtcaudit/rtcaudit.so
Set the LD_AUDIT environment variableto preload rtcaudit.so only when needed; do not keep it loaded all the time. For example:
% setenv LD_AUDIT... % start-your-application % unsetenv LD_AUDIT
Once you attach to the process, you can enable runtime checking.
If the program you want to attach to is forked or executed from some other program, you need to set LD_AUDIT for the main program (which will fork). The setting of LD_AUDIT is inherited across forks and execution.
The LC_AUDITenvironment variable applies to both 32-bit programs and 64-bit programs, which makes it difficult to select the correct library for a 32-bit program that runs a 64-bit program, or a 64-bit program that runs a 32-bit program. Some versions of the Solaris OS support the LD_AUDIT_32 environment variable and the LD_AUDIT_64 environment variable, which affect only 32-bit programs and 64-bit programs, respectively. See the Linker and Libraries Guide for the version of the Solaris OS you are running to determine if these variables are supported.