Using Runtime Checking in Batch Mode

The bcheck utility is a convenient batch interface
to the runtime checking feature of dbx. It runs a program
under dbx and by default, places the runtime checking error
output in the default file program.errs.

The bcheck utility can perform memory leak checking,
memory access checking, memory use checking, or all three. Its default action
is to perform only leak checking. See the bcheck(1) man
page for more details on its use.

Note –

Before running the bcheck utility on a system
running the 64-bit Linux OS, you must set the _DBX_EXEC_32 environment
variable.

bcheck Syntax

Use the -ologfile option
to specify a different name for the logfile. Use the -sscript option before executing the program to read in the dbx commands contained in the file script.
The script file typically contains commands like suppress and dbxenv to tailor the error output
of the bcheck utility.

The -q option makes the bcheck utility
completely quiet, returning with the same status as the program. This option
is useful when you want to use the bcheck utility in scripts
or makefiles.

bcheck Examples

To perform only leak checking on hello, type:

bcheck hello

To perform only access checking on mach with the
argument 5, type:

bcheck -access mach 5

To perform memory use checking on cc quietly and
exit with normal exit status, type:

bcheck -memuse -q cc -c prog.c

The program does not stop when runtime errors are detected in batch
mode. All error output is redirected to your error log file logfile.
The program stops when breakpoints are encountered or if the program is interrupted.

In batch mode, the complete stack backtrace is generated and redirected
to the error log file. The number of stack frames can be controlled using
the dbx environment variable stack_max_size.

If the file logfile already exists, bcheck erases
the contents of that file before it redirects the batch output to it.

Enabling Batch Mode Directly From dbx

You can also enable a batch-like mode directly from dbx by setting
the dbx environment variables rtc_auto_continue and rtc_error_log_file_name (see Setting dbx Environment Variables).

If rtc_auto_continue is set to on,
runtime checking continues to find errors and keeps running automatically.
It redirects errors to the file named by the dbx environment
variable rtc_error_log_file_name. (See Setting dbx Environment Variables.) The default
log file name is /tmp/dbx.errlog.uniqueid.
To redirect all errors to the terminal, set the rtc_error_log_file_name environment
variable to /dev/tty.