Before You Begin

dbx is an interactive, source-level, command-line debugging tool. Debugging a Program With dbx is intended for programmers with a working knowledge of Fortran, C, or C++, and some understanding of the Solaristrademark operating environment and UNIX® commands, who want to debug an application using dbx commands.


How This Book Is Organized

Debugging a Program With dbx contains the following chapters and appendixes:

Chapter 1 gives you the basics of using dbx to debug an application.

Chapter 2 describes how to start a debugging session, discusses compilation options, and tells you how to save all or part of session and replay it later.

Chapter 3 describes how to set dbx environment variables to customize your debugging environment and how to use the initialization file, .dbxrc, to preserve changes and adjustments from session to session.

Chapter 4 tells you about visiting source files and functions; locating symbols; and looking up variables, members, types, and classes.

Chapter 5 describes how to run, attach to, detach from,. continue execution of, stop, and rerun a program under dbx. It also tells you how to single-step through program code.

Chapter 6 describes how to set, clear, and list breakpoints and traces.

Chapter 7 tells you how to examine the call stack and how to debug a core file.

Chapter 8 shows you how to evaluate data; display the values of expressions, variables, and other data structures; and assign values to variables.

Chapter 9 describes how to use runtime checking to detect memory leak and memory access errors in your program automatically.

Chapter 10 describes the fix and continue feature of dbx that allows you to modify and recompile a source file and continue executing without rebuilding your entire program.

Chapter 11 tells you how to find information about threads.

Chapter 12 describes how to use dbx to debug OpenMPtrademark code.

Chapter 13 describes several dbx facilities that help you debug child processes.

Chapter 14 tells you how to use dbx to work with signals.

Chapter 15 describes dbx support of C++ templates, and the commands available for handling C++ exceptions and how dbx handles these exceptions.

Chapter 16 introduces some of the dbx facilities you can use to debug a Fortran program.

Chapter 17 describes how you can use dbx to debug an application that is a mixture of Javatrademark code and C JNI (Javatrademark Native Interface) code or C++ JNI code.

Chapter 18 tells you how to use event management and execution control command at the machine-instruction level, how to display the contents of memory at specific addresses, and how to display source code lines along with their corresponding machine instructions.

Chapter 19 explains the differences between ksh-88 and dbx commands.

Chapter 20 describes dbx support for program that use dynamically linked, shared libraries.

Appendix A focuses on dbx commands that change your program or its behavior when you run it under dbx.

Appendix B tells you how to manage events, and describes how dbx can perform specific actions when specific events occur in the program you are debugging.

Appendix C gives detailed syntax and functional descriptions of all of the dbx commands.


Typographic Conventions

TABLE P-1 Typeface Conventions

Typeface

Meaning

Examples

AaBbCc123

The names of commands, files, and directories; on-screen computer output

Edit your .login file.

Use ls -a to list all files.

% You have mail.

AaBbCc123

What you type, when contrasted with on-screen computer output

% su

Password:

AaBbCc123

Book titles, new words or terms, words to be emphasized

Read Chapter 6 in the User's Guide.

These are called class options.

You must be superuser to do this.

AaBbCc123

Command-line placeholder text; replace with a real name or value

To delete a file, type rm filename.


TABLE P-2 Code Conventions

Code Symbol

Meaning

Notation

Code Example

[ ]

Brackets contain arguments that are optional.

O[n]

O4, O

{ }

Braces contain a set of choices for a required option.

d{y|n}

dy

|

The "pipe" or "bar" symbol separates arguments, only one of which may be chosen.

B{dynamic|static}

Bstatic

:

The colon, like the comma, is sometimes used to separate arguments.

Rdir[:dir]

R/local/libs:/U/a

...

The ellipsis indicates omission in a series.

xinline=f1[,...fn]

xinline=alpha,dos



Shell Prompts

Shell

Prompt

C shell

machine-name%

C shell superuser

machine-name#

Bourne shell and Korn shell

$

Superuser for Bourne shell and Korn shell

#



Accessing Sun Studio Software and Man Pages

The compilers and tools and their man pages are not installed into the standard /usr/bin/ and /usr/share/man directories. To access the compilers and tools, you must have your PATH environment variable set correctly (see Accessing the Compilers and Tools). To access the man pages, you must have the your MANPATH environment variable set correctly (see Accessing the Man Pages.).

For more information about the PATH variable, see the csh(1), sh(1), and ksh(1) man pages. For more information about the MANPATH variable, see the man(1) man page. For more information about setting your PATH variable and MANPATH variables to access this release, see the installation guide or your system administrator.



Note - The information in this section assumes that your Sun Studio compilers and tools are installed in the /opt directory. If your software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.



Accessing the Compilers and Tools

Use the steps below to determine whether you need to change your PATH variable to access the compilers and tools.


procedure icon  To Determine Whether You Need to Set Your PATH Environment Variable

1. Display the current value of the PATH variable by typing the following at a command prompt.

% echo $PATH

2. Review the output to find a string of paths that contain /opt/SUNWspro/bin/.

If you find the path, your PATH variable is already set to access the compilers and tools. If you do not find the path, set your PATH environment variable by following the instructions in the next procedure.


procedure icon  To Set Your PATH Environment Variable to Enable Access to the Compilers and Tools

1. If you are using the C shell, edit your home .cshrc file. If you are using the Bourne shell or Korn shell, edit your home .profile file.

2. Add the following to your PATH environment variable. If you have Sun ONE Studio software or Forte Developer software installed, add the following path before the paths to those installations.

/opt/SUNWspro/bin

Accessing the Man Pages

Use the following steps to determine whether you need to change your MANPATH variable to access the man pages.


procedure icon  To Determine Whether You Need to Set Your MANPATH Environment Variable

1. Request the dbx man page by typing the following at a command prompt.

% man dbx

2. Review the output, if any.

If the dbx(1) man page cannot be found or if the man page displayed is not for the current version of the software installed, follow the instructions in the next procedure for setting your MANPATH environment variable.


procedure icon  To Set Your MANPATH Environment Variable to Enable Access to the Man Pages

1. If you are using the C shell, edit your home .cshrc file. If you are using the Bourne shell or Korn shell, edit your home .profile file.

2. Add the following to your MANPATH environment variable.

/opt/SUNWspro/man

Accessing the Integrated Development Environment

The Sun Studio 8 integrated development environment (IDE) provides modules for creating, editing, building, debugging, and analyzing the performance of a C, C++, or Fortran application.

The IDE requires the Core Platform component of Sun Studio 8. You must set the SPRO_NETBEANS_HOME environment variable to the location where the Core Platform component is installed or mounted (installation_directory/netbeans/3.5R) if the Core Platform component is not installed or mounted to one of the following locations:

The command to start the IDE is sunstudio. For details on this command, see the sunstudio(1) man page.


Accessing Compilers and Tools Documentation

You can access the documentation at the following locations:

If your software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.

The docs.sun.com web site (http://docs.sun.com) enables you to read, print, and buy Sun Microsystems manuals through the Internet. If you cannot find a manual, see the documentation index that is installed with the software on your local system or network.



Note - Sun is not responsible for the availability of third-party web sites mentioned in this document and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. Sun will not be responsible or liable for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods, or services available on or through any such sites or resources.



Documentation in Accessible Formats

The documentation is provided in accessible formats that are readable by assistive technologies for users with disabilities. You can find accessible versions of documentation as described in the following table. If your software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.

Type of Documentation

Format and Location of Accessible Version

Manuals (except third-party manuals)

HTML at http://docs.sun.com

Third-party manuals:

  • Standard C++ Library Class Reference
  • Standard C++ Library User's Guide
  • Tools.h++ Class Library Reference
  • Tools.h++ User's Guide

HTML in the installed software through the documentation index at file:/opt/SUNWspro/docs/index.html

Readmes and man pages

HTML in the installed software through the documentation index at file:/opt/SUNWspro/docs/index.html

Online help

HTML available through the Help menu in the IDE

Release notes

HTML at http://docs.sun.com


Related Compilers and Tools Documentation

The following table describes related documentation that is available at file:/opt/SUNWspro/docs/index.html and http://docs.sun.com. If your software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.

Document Title

Description

dbx Readme

Lists new features, known problems, limitations, and incompatibilities of dbx.

dbx(1) man page

Describes the dbx command.

C User's Guide

Describes the Sun Studio 8 C programming language compiler along with ANSI C compiler-specific information.

C++ User's Guide

Instructs you in the use of the Sun Studio 8 C++ compiler and provides detailed information on command-line compiler options.

Fortran User's Guide

Describes the compile-time environment and command-line options for the Sun Studio 8 Fortran compiler.

OpenMP API User's Guide

Summarizes the OpenMP Fortran 95, C, and C++ application program interface (API) for building multiprocessing applications. Sun Studio compilers support the OpenMP API.

Performance Analyzer

Describes the performance analysis tools that are available with Sun Studio 8.



Accessing Related Solaris Documentation

The following table describes related documentation that is available through the docs.sun.com web site.

Document Collection

Document Title

Description

Solaris Reference Manual Collection

See the titles of man page sections.

Provides information about the Solaris operating system.

Solaris Software Developer Collection

Linker and Libraries Guide

Describes the operations of the Solaris link-editor and runtime linker.

Solaris Software Developer Collection

Multithreaded Programming Guide

Covers the POSIX and Solaris threads APIs, programming with synchronization objects, compiling multithreaded programs, and finding tools for multithreaded programs.

Solaris Software Developer Collection

SPARC Assembly Language Reference Manual

Describes the assembler that runs on the SPARC® architecture and translates source files that are in assembly language format into object files in linking format.



Resources for Developers

Visit http://developers.sun.com/prodtech/cc to find these frequently updated resources:

You can find additional resources for developers at http://developers.sun.com.


Contacting Sun Technical Support

If you have technical questions about this product that are not answered in this document, go to:

http://www.sun.com/service/contacting


Sending Your Comments

Sun is interested in improving its documentation and welcomes your comments and suggestions. Email your comments to Sun at this address:

docfeedback@sun.com

Please include the part number (817-5063-10) of your document in the subject line of your email.