|  | Home | Libraries | People | FAQ | More | 
Boost.Build comes with a debugger for Jamfiles. To run the debugger, start Boost.Build with b2 -dconsole.
$ b2 -dconsole (b2db) break gcc.init Breakpoint 1 set at gcc.init (b2db) run Starting program: /usr/bin/b2 Breakpoint 1, gcc.init ( ) at /usr/share/boost-build/tools/gcc.jam:74 74 local tool-command = ; (b2db) quit
        The run command is used to start a new b2
        subprocess for debugging.  The arguments to run are
        passed on the command line.  If a child process is already running,
        it will be terminated before the new child is launched.
      
        When the program is paused continue will resume execution.
        The step command will advance the program by a single
        statement, stopping on entry to another function or return
        from the current function.  next is like step
        except that it skips over function calls.  finish executes
        until the current function returns.
      
        The kill command terminates the current child
        immediately.
      
        Breakpoints are set using the break command.
        The location of the breakpoint can be specified as either
        the name of a function (including the module name) or
        or a file name and line number of the form file:line.
        When a breakpoint is created it is given a unique id which is
        used to identify it for other commands.
      
(b2db) break Jamfile:10 Breakpoint 1 set at Jamfile:10 (b2db) break msvc.init Breakpoint 2 set at msvc.init
        A breakpoint can be temporarily disabled using the disable
        command.  While a breakpoint is disabled, the child will not
        stop when it is hit.  A disabled breakpoint can be activated
        again with enable.
      
(b2db) disable 1 (b2db) enable 1
        Breakpoints can be removed permanently with delete
        or clear.  The difference between them is that
        delete takes the breakpoint id while
        clear takes the location of the breakpoint as
        originally specified to break.
      
(b2db) clear Jamfile:10 Deleted breakpoint 1 (b2db) delete 2
        The backtrace command will print a summary of
        every frame on the stack.
      
        The print command can be used to show the value
        of an expression.
      
(b2db) print [ modules.peek : ARGV ] /usr/bin/b2 toolset=msvc install (b2db) print $(__file__) Jamfile.jam