Type 'help symboltracer <command>' for more information about each command.
22
}
23
}
24
switch--[lindex$args1]{
25
"start"{ return {Opens a symbol file and start tracing session
26
27
'start' reads a symbol file (like a .noi or .sym file) and creates breakpoints and traces for each entry found.
28
29
Syntax: symboltracer start [<sym-file>]
30
}}
31
"add"{ return {Creates breakpoint and trace for a user-defined name and address
32
33
'add' inserts a user-defined breakpoint and trace. No previously defined symbol is necessary. This is most useful for quick tracing sessions.
34
35
Syntax: symboltracer add <name> <address>
36
}}
37
"stop"{ return {Interrupts symboltracer session
38
39
'stop' removes all breakpoints and traces associated with symboltracer and all files included with the 'start' command.
40
41
Syntax: symboltracer stop
42
}}
43
"list"{ return {Verifies if a user trace exists
44
45
'list' returns all user traces created by symboltracer when executed without parameters or the address of the user trace if a user trace name is specified.
46
47
Syntax: symboltracer list my_function
48
symboltracer list
49
}}
50
"remove"{ return {Removes user trace from the trace viewer
51
52
'remove' deletes the user specified user trace and associated breakpoint.
53
54
Syntax: symboltracer remove my_function
55
}}
56
default{ error "Unknown subcommand. Must be one of 'add', 'list', 'remove', 'start' or 'stop'."}
57
}
58
}
59
60
proc_enter_function{name}{
61
# find function return address
62
set retaddr [peek16[reg SP]]
63
# check if we create caller breakpoint for CALL or RST