faqts : Computers : Programming : Languages : Java

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

5 of 6 people (83%) answered Yes
Recently 5 of 6 people (83%) answered Yes

Entry

Java: Debug: How to debug on the command line? [jdb.exe]

Apr 22nd, 2006 09:12
Knud van Eeden,


----------------------------------------------------------------------
--- Knud van Eeden --- 22 April 2021 - 04:11 pm ----------------------
Java: Debug: How to debug on the command line? [jdb.exe]
===
To debug, run e.g. the program
  jdb.exe
===
Steps: Overview:
 1. -Possibly download and install the Sun Java JDK
     (because this installs also the program jdb.exe)
 2. -Run the program
      jdb.exe
 3. -This will open a command line where you can type debug commands
 4. -E.g.
      run <myApplicationFilename>.java
      e.g.
       run HelloWorldApplication.java
      1. -That will show a screen output similar to the following:
--- cut here: begin --------------------------------------------------
 > run HelloWorld.java
   Set uncaught java.lang.Throwable
   Set deferred uncaught java.lang.Throwable
   VM Started:
   Exception occurred: java.lang.ClassNotFoundException
                       (uncaught)"thread=main",
                       java.net.URLClassLoader$1.run(), line=199 bci=72
   main[1]
--- cut here: end ----------------------------------------------------
 5. -For a list of commands, type
      help
     1. -That will show a screen output similar to the following:
--- cut here: begin --------------------------------------------------
 jdb.exe
 Initializing jdb ...
 > help
 ** command list **
 run [class [args]]        -- start execution of application's main
                              class
 threads [threadgroup]     -- list threads
 thread <thread id>        -- set default thread
 suspend [thread id(s)]    -- suspend threads (default: all)
 resume [thread id(s)]     -- resume threads (default: all)
 where [<thread id> | all] -- dump a thread's stack
 wherei [<thread id> | all]-- dump a thread's stack, with pc info
 up [n frames]             -- move up a thread's stack
 down [n frames]           -- move down a thread's stack
 kill <thread id> <expr>   -- kill a thread with the given exception
                              object
 interrupt <thread id>     -- interrupt a thread
 print <expr>              -- print value of expression
 dump <expr>               -- print all object information
 eval <expr>               -- evaluate expression (same as print)
 set <lvalue> = <expr>     -- assign new value to field/variable/array
                              element
 locals                    -- print all local variables in current
                              stack frame
 classes                   -- list currently known classes
 class <class id>          -- show details of named class
 methods <class id>        -- list a class's methods
 fields <class id>         -- list a class's fields
 threadgroups              -- list threadgroups
 threadgroup <name>        -- set current threadgroup
 stop in <class id>.<method>[(argument_type,...)]
                           -- set a breakpoint in a method
 stop at <class id>:<line> -- set a breakpoint at a line
 clear <class id>.<method>[(argument_type,...)]
                           -- clear a breakpoint in a method
 clear <class id>:<line>   -- clear a breakpoint at a line
 clear                     -- list breakpoints
 catch [uncaught|caught|all] <class id>|<class pattern>
                           -- break when specified exception occurs
 ignore [uncaught|caught|all] <class id>|<class pattern>
                           -- cancel 'catch' for the specified
                              exception
 watch [access|all] <class id>.<field name>
                           -- watch access/modifications to a field
 unwatch [access|all] <class id>.<field name>
                           -- discontinue watching access/modifications
                              to a field
 trace methods [thread]    -- trace method entry and exit
 untrace methods [thread]  -- stop tracing method entry and exit
 step                      -- execute current line
 step up                   -- execute until the current method returns
                              to its caller
 stepi                     -- execute current instruction
 next                      -- step one line (step OVER calls)
 cont                      -- continue execution from breakpoint
 list [line number|method] -- print source code
 use (or sourcepath) [source file path]
                           -- display or change the source path
 exclude [<class pattern>, ... | "none"]
                           -- do not report step or method events for
                              specified classes
 classpath                 -- print classpath info from target VM
 monitor <command>         -- execute command each time the program 
stops
 monitor                   -- list monitors
 unmonitor <monitor#>      -- delete a monitor
 read <filename>           -- read and execute a command file
 lock <expr>               -- print lock info for an object
 threadlocks [thread id]   -- print lock info for a thread
 pop                       -- pop the stack through and including the
                              current frame
 reenter                   -- same as pop, but current frame is 
reentered
 redefine <class id> <class file name>
                           -- redefine the code for a class
 disablegc <expr>          -- prevent garbage collection of an object
 enablegc <expr>           -- permit garbage collection of an object
 !!                        -- repeat last command
 <n> <command>             -- repeat command n times
 help (or ?)               -- list commands
 version                   -- print version information
 exit (or quit)            -- exit debugger
 <class id>: a full class name with package qualifiers
 <class pattern>: a class name with a leading or trailing wildcard 
('*')
 <thread id>: thread number as reported in the 'threads' command
 <expr>: a Java(tm) Programming Language expression.
 Most common syntax is supported.
 Startup commands can be placed in either "jdb.ini" or ".jdbrc"
 in user.home or user.dir
--- cut here: end ----------------------------------------------------
===
Internet: see also:
---
----------------------------------------------------------------------