trace 命令用于显示执行的源代码行、函数调用或变量更改。
可使用 dbx 环境变量 trace_speed 设置跟踪速度。
如果 dbx 处于 Java 模式下,而您要在本地模式中设置 trace 断点,请使用 joff 命令切换到本地模式,或为 trace 命令添加前缀 native。
如果 dbx 处于 JNI 模式下,而您要在 Java 代码中设置 trace 断点,请为 trace 命令添加前缀 java。
trace 命令的通用语法如下:
trace event-specification [modifier]
发生指定事件时,跟踪即被输出。
下列特定语法在本地模式中有效:
将所有跟踪输出定向到指定的文件名。要将跟踪输出恢复为标准输出,请使用 - 表示 filename。跟踪输出始终附加到 filename 后面。每当显示 dbx 提示以及应用程序退出时都会刷新。在执行新的运行或连接后继续运行时总会重新打开文件。
跟踪每个源代码行、函数调用并返回。
跟踪指定函数中每个源代码行。
跟踪指定源代码行 line。
跟踪对指定函数的调用及其返回。
跟踪对 filename 中所有函数的调用及其返回。
跟踪对所有名为 function 的成员函数的调用。
调用任何名为 function 的函数时跟踪。
跟踪对所有 class 的成员函数的调用。
跟踪对 variable 的更改。
其中:
filename 是跟踪输出要发送到的文件的名称。
function 是函数名。
line-number 是源代码行的编号。
class 是类名。
variable 是变量名。
下列修饰符在本地模式中有效。
只有在 condition-expression 的求值结果为 true 时,才会发生指定的事件。
只有在 function 中发生指定的事件时,执行才会停止。
从 0 开始,每次发生事件时,计数器的计数便会增加。达到 number 时,执行便停止,且计数器重置为 0。
从 0 开始,每次发生事件时,计数器的计数便会增加。执行没有停止。
创建发生事件时会删除的临时断点。
创建禁用状态的断点。
执行指令级变量。例如,step 变为指令级单步执行,而 at 使用文本地址而不是行号作为参数。
使相应事件在 debug 中保持持久性。有些事件(如断点)不适合保持持久性。delete all 不会删除持久性的处理程序。要删除持久性的处理程序,请使用 delete hid。
通过 status 命令隐藏事件。一些导入模块可能会选择使用它。可使用 status -h 查看它们。
只有在给定的 LWP 中发生指定的事件时,执行才会停止。
只有在给定的线程中发生指定的事件时,执行才会停止。
下列特定语法在 Java 模式中有效。
将所有跟踪输出定向到指定的 filename。要将跟踪输出恢复为标准输出,请使用 - 表示 filename。跟踪输出始终附加到 filename 后面。每当显示 dbx 提示以及应用程序退出时都会刷新。在执行新的运行或连接后继续运行时总会重新打开文件。
跟踪 line-number。
跟踪指定的源代码 filename.line-number。
跟踪对 class-name. method-name 的调用及其返回。
跟踪对 class-name.method-name([parameters]) 的调用及其返回。
在调用任何名为 class-name.method-name 的方法时跟踪。
在调用任何名为 class-name.method-name [(parameters)] 的方法时跟踪。
其中:
class_name 是 Java 类。可使用下列任意值:
使用句点 (.) 作为限定符的软件包路径;例如,test1.extra.T1.Inner
前面带有英镑标记 (#) 并使用斜杠 (/) 和美元标记 ($) 作为限定符的全路径名。例如,#test1/extra/T1$Inner。如果使用 $ 限定符,请使用引号将 class-name 引起来。
filename 是文件名。
line-number 是源代码行的编号。
method-name 是 Java 方法的名称。
parameters 是方法的参数。
下列修饰符在 Java 模式中有效。
只有在 condition-expression 的求值求值结果为 true 时,才会发生指定事件并输出跟踪。
从 0 开始,每次发生事件时,计数器的计数便会增加。达到 number 时,便输出跟踪,且计数器重置为 0。
从 0 开始,每次发生事件时,计数器的计数便会增加。执行没有停止。
创建发生了事件且输出了跟踪时会删除的临时断点。如果 -temp 与 -count 一起使用,则仅当计数器重置为 0 时才删除断点。
创建禁用状态的断点。
有关所有事件的列表和语法,请参见设置事件规范。