跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Studio 12.3:使用 dbx 调试程序 Oracle Solaris Studio 12.3 Information Library (简体中文) |
bcheck 实用程序是 dbx 的运行时检查的方便的批处理接口。它在 dbx 下运行程序,并且在缺省情况下,将运行时检查错误输出放在缺省文件 program.errs 中。
bcheck 实用程序可以分别或一起执行内存泄漏检查、内存访问检查和内存使用检查。其缺省操作是只执行泄漏检查。有关其使用的更多详细信息,请参见 bcheck(1) 手册页。
注 - 在运行 64 位 Linux 操作系统的系统上运行 bcheck 实用程序之前,必须设置 _DBX_EXEC_32 环境变量。
bcheck [-V] [-access | -all | -leaks | -memuse] [-xexec32] [-o logfile] [-q] [-s script] program [args]
-o logfile 选项用于为日志文件指定另一个名称。-s script 选项在执行程序前使用,用于在 script 文件中包含的 dbx 命令中进行读取。script 文件通常包含 suppress 和 dbxenv 等这类命令,用于调整 bcheck 实用程序的错误输出。
-q 选项可使 bcheck 实用程序处于完全静默状态,返回时的状态与程序相同。要在脚本或 makefiles 中使用 bcheck 实用程序时,此选项很有用。
要对 hello 仅执行泄漏检查,请键入:
bcheck hello
要使用参数 5 对 mach 仅执行访问检查,请键入:
bcheck -access mach 5
要以静默方式对 cc 执行内存使用检查,并以正常退出状态退出,请键入:
bcheck -memuse -q cc -c prog.c
在批处理模式下检测到运行时错误时,程序不会停止。所有错误输出都会重定向到错误日志文件 logfile 中。遇到断点或程序被中断时,程序会停止。
在批处理模式下,会生成完整的堆栈回溯,且其会重定向到错误日志文件。可使用 dbx 环境变量 stack_max_size 控制堆栈帧数。
如果文件 logfile 已存在,则 bcheck 会清除该文件的内容,然后将批处理输出重定向到该文件。
也可以通过设置 dbx 环境变量 rtc_auto_continue 和 rtc_error_log_file_name 直接在 dbx 中启用类似于批处理的模式(请参见设置 dbx 环境变量)。
如果 rtc_auto_continue 设置为 on,则运行时检查会继续查找错误,并自动保持运行。它将错误重定向至 dbx 环境变量 rtc_error_log_file_name 命名的文件。(请参见设置 dbx 环境变量。)缺省的日志文件名为 /tmp/dbx.errlog.uniqueid。要将所有错误都重定向到终端,请将 rtc_error_log_file_name 环境变量设置为 /dev/tty。
缺省情况下,rtc_auto_continue 设置为 off。