![]() |
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