Obsolete Tracepoint Definition

An obsolete tracepoint definition is similar to a when in or when at breakpoint, possibly combined with watching for a change of a variable's value:

obsolete_trace_breakpoint_definition_command

: trace [ variable_name ]

[ thread_filter ]

[ where_modifier ]

[ logical_filter ]

[ breakpoint_actions ]

| trace function_name [ logical_filter ] [ breakpoint_actions ]

| trace line_specifier [ logical_filter ] [ breakpoint_actions ]

where_modifier

: in function_name

| at line_specifier

line_specifier

: quoted_filename:line_number

| line_number

quoted_filename

: "filename"

| 'filename'

Following are the differences between an obsolete tracepoint and a when command:

For example:

(idb) trace in List<Node>::print

[#7: trace in void List<Node>::print(void) const]

(idb) trace i in List<Node>::print

[#8: trace i in void List<Node>::print(void) const]

(idb) trace List<Node>::print if i { print "Test 1" }

[#9: trace in void List<Node>::print(void) const if i { print "Test 1" }]

If the trace command is given with no arguments, the debugger prints a trace identification line when each function in your program is entered. For example:

(idb) trace

[#10: trace]

(idb) status

#10 at procedure entry { trace-proc }

This is equivalent to the when every proc entry command (with equivalent performance degradation).