Go to main content
Oracle® Developer Studio 12.5: Debugging a Program with dbx

Exit Print View

Updated: June 2016
 
 

Using dbx Commands in Java Mode

Any commands not included in one of these categories work only in native mode.

Java Expression Evaluation in dbx Commands

    The Java expression evaluator used in most dbx commands supports the following constructs:

  • All literals

  • All names and field accesses

  • this and super

  • Array accesses

  • Casts

  • Conditional binary operations

  • Method calls

  • Other unary/binary operations

  • Assignment to variables or fields

  • instanceof operator

  • Array length operator

    The Java expression evaluator does not support the following constructs:

  • Qualified this, for example, <ClassName>.this

  • Class instance creation expressions

  • Array creation expressions

  • String concatenation operator

  • Conditional operator ? :

  • Compound assignment operators, for example x += 3

A particularly useful way of inspecting the state of your Java application is using the watch facility in the IDE or dbxtool.

Do not depend on precise value semantics in expressions that do more than just inspect data.

Static and Dynamic Information Used by dbx Commands

Much of the information about a Java application is normally available only after the JVM software has started, and is unavailable after the Java application has finished executing. However, when you debug a Java application with dbx, dbx gleans some of the information it needs from class files and JAR files that are part of the system class path and user class path before it starts the JVM software. This information enables dbx to do better error checking on breakpoints before you run the application.

Some Java classes and their attributes might not be accessible through the class path. dbx can inspect and step through these classes, and the expression parser can access them once they are loaded at runtime. However, the information it gathers is temporary and is no longer available after the JVM software terminates.

Some information that dbx needs to debug your Java application is not recorded anywhere so dbx skims Java source files to derive this information as it is debugging your code.

Commands With Identical Syntax and Functionality in Java Mode and Native Mode

The dbx commands listed in the following table have the same syntax and perform the same operations in Java mode as in native mode.

Command
Functionality
attach
Attaches dbx to a running process, stopping execution and putting the program under debugging control
cont
Causes the process to continue execution
dbxenv
List or set dbxenv variables
delete
Deletes breakpoints and other events
down
Moves down the call stack (away from main)
dump
Prints all variables local to a procedure or method
file
Lists or changes the current file
frame
Lists or changes the current stack frame number
handler
Modifies event handlers (breakpoints)
import
Imports commands from a dbx command library
line
Lists or changes the current line number
list
Displays lines of a source file
next
Steps one source line (steps over calls)
pathmap
Maps one path name to another for finding source files and the like
proc
Displays the status of the current process
prog
Manages programs being debugged and their attributes
quit
Exits dbx
rerun
Runs the program with no arguments
runargs
Changes the arguments of the target process
status
Lists the event handlers (breakpoints)
step up
Steps up and out of the current function or method
stepi
Steps one machine instruction (steps into calls)
up
Moves up the call stack (toward main)
whereami
Displays the current source line

Commands With Different Syntax in Java Mode

The dbx commands listed in the following table have different syntax for Java debugging than for native code debugging and operate differently in Java mode than in native mode.

Command
Native Mode Functionality
Java Mode Functionality
assign
Assigns a new value to a program variable
Assigns a new value to a local variable or parameter
call
Calls a procedure
Calls a method
dbx
Starts dbx
Starts dbx
debug
Loads the specified application and begins debugging the application
Loads the specified Java application, checks for the existence of the class file, and begins debugging the application
detach
Releases the target process from dbx’s control
Releases the target process from dbx’s control
display
Evaluates and prints expressions at every stopping point
Evaluates and prints expressions, local variables, or parameters at every stopping point
files
Lists file names that match a regular expression
Lists all of the Java source files known to dbx
func
Lists or changes the current function
Lists or changes the current method
next
Steps one source line (stepping over calls)
Steps one source line (stepping over calls)
print
Prints the value of an expression
Prints the value of an expression, local variable, or parameter
run
Runs the program with arguments
Runs the program with arguments
step
Steps one source line or statement (stepping into calls)
Steps one source line or statement (stepping into calls)
stop
Sets a source-level breakpoint
Sets a source-level breakpoint
thread
Lists or changes the current thread
Lists or changes the current thread
threads
Lists all threads
Lists all threads
trace
Shows executed source lines, function calls, or variable changes
Shows executed source lines, function calls, or variable changes
undisplay
Undoes display commands
Undoes display commands
whatis
Prints the type of expression or declaration of type
Prints the declaration of an identifier
when
Executes commands when a specified event occurs
Executes commands when a specified event occurs
where
Prints the call stack
Prints the call stack

Commands Valid Only in Java Mode

The dbx commands listed in the following table are valid only in Java mode or JNI mode.

Command
Functionality
java
Used when dbx is in JNI mode to indicate that the Java version of a specified command is to be executed
jclasses
Prints the names of all Java classes known to dbx when you give the command
joff
Switches dbx from Java mode or JNI mode to native mode
jon
Switches dbx from native mode to Java mode
jpkgs
Prints the names of all Java packages known to dbx when you give the command
native
Used when dbx is in Java mode to indicate that the native version of a specified command is to be executed