Oracle Solaris Studio 12.2:使用 dbx 调试程序

跟踪执行

跟踪会收集程序中发生情况的相关信息并显示这些信息。程序执行到使用 trace 命令创建的断点处时将停止,此时会发送事件特定的 trace 信息行,然后程序继续执行。

跟踪会显示即将执行的每个源代码行。除最简单的程序以外,此跟踪都会产生大量输出。

一种更加有用的跟踪是应用过滤器显示程序中事件的相关信息。例如,可以跟踪每个函数调用、给定名称的每个成员函数、类中的每个函数或每次从函数的退出。还可以跟踪对变量的更改。

设置跟踪

可以通过在命令行中键入 trace 命令设置跟踪。trace 命令的基本语法如下:


trace event-specification [ modifier ]

有关 trace 命令的完整语法,请参见trace 命令

跟踪提供的信息取决于与之关联的事件类型(请参见设置事件规范)。

控制跟踪速度

通常,跟踪输出的显示速度太快。可以使用 dbx 环境变量 trace_speed 控制输出每个跟踪后的延迟时间。缺省延迟时间为 0.5 秒。

要设置跟踪期间每个代码行执行间隔时间(秒),请键入:


dbxenv trace_speed number

将跟踪输出定向到文件

可以使用 -file filename 选项将跟踪输出定向到文件。例如,以下命令可将跟踪输出定向到文件 trace1


(dbx) trace -file trace1

要将跟踪输出还原为标准输出,请使用 - 表示 filename。跟踪输出始终附加到 filename 后面。每当显示 dbx 提示以及应用程序退出时都会刷新。在执行新的运行或连接后继续运行时总会重新打开 filename