When you are developing an application, debugging the application becomes an important part of application development. Debugging tools are available that enable you to debug complex software systems effortlessly. The commonly used debugging tools are as follows:
mdb – This extensible, general purpose debugging tool for the Oracle Solaris operating system enables you to debug at assembly language level. By using mdb, you can debug the Oracle Solaris kernel and associated device drivers and modules. Along with mdb you can use libumem to find memory leaks and bugs in applications and libadimalloc to find buffer overflows and bad pointers on machines with Silicon Secured Memory (SSM) such as the Oracle SPARC M7, T7, S7, M8, and T8 servers. For information, see:
gdb – You can use the GNU debugger, commonly called as gdb to debug applications, gdb allows you to analyse and debug programs at runtime. It also allows you add specific breakpoints to examine the program. For more information, see GNU Debugger.
dtrace – This comprehensive dynamic tracing framework for the Oracle Solaris OS enables you to concisely answer questions about the behavior of the operating system and user programs. DTrace can help you to identify performance issues and bugs in applications. For more information, see Oracle Solaris 11.4 DTrace (Dynamic Tracing) Guide.
Oracle Developer Studio provides the following tools for debugging applications.
dbx – This interactive, source-level debugging tool is used to run a program in a controlled manner. It gives you complete control of dynamic execution of a program such as collecting performance and memory usage data, monitoring memory access, and detecting memory leaks. You can also use the GUI version of dbx by running the dbxtool command. For more information, see Oracle Developer Studio 12.6: Debugging a Program with dbx and Oracle Developer Studio 12.6: dbxtool Tutorial.
discover – This command line utility helps to detect memory access errors in your code. See Memory Error Discovery Tool (discover).
Code Analyzer – This integrated set of tools helps you to ensure application reliability and security by detecting application vulnerabilities, including memory leaks and memory access violations. For more information, see Oracle Developer Studio 12.6: Code Analyzer User's Guide and Oracle Developer Studio 12.6: Code Analyzer Tutorial.
Collector and Performance Analyzer – These tools perform statistical profiling of a wide range of performance data and tracing of various system calls, and relate the data to program structure at the function, source-level, and instruction levels. For more information, see Oracle Developer Studio 12.6: Performance Analyzer and Oracle Developer Studio 12.6: Performance Analyzer Tutorials.
Thread Analyzer – It can detect hard to find complex parallel programming errors. Thread Analyzer supports POSIX, OpenMP, and Oracle Solaris threads. For more information, see Oracle Developer Studio 12.6: Thread Analyzer User's Guide.