断点调试器命令
bpset
在 <address> 处设置断点
bpclear
清除指定断点或所有断点
bpdisable
禁用某个断点或所有断点
bpenable
启用一个特定断点或所有断点
bplist
lists breakpoints
列出断点
在 CPU 执行特定地址的指令之前,断点会停止执行并激活调试器。
bpset
bp[set] <address>[:<CPU>][,<condition>[,<action>]]
在指定的 <address> 处设置新的执行断点。<address> 后可选择加上冒号、标记或调试器 CPU 编号,以便为特定 CPU 设置断点。如果没有指定 CPU,则将为调试器中当前可见的 CPU 设置断点。
通过可选的 <condition> 参数,可以指定一个表达式,该表达式将在每次断点地址被击中时进行评估。如果表达式的结果为 true(非 0),断点将停止执行;否则,将继续执行,不会发出通知。可选的 <action> 参数提供了在断点被击中且 <condition> 为 true 时要执行的命令。请注意,您可能需要用大括号 { } 包围该命令,以确保命令中的逗号和分号不会在 bpset 命令本身的上下文中被解释。
设置的每个断点都会分配一个数字索引,用于在其他断点命令中引用。断点索引在整个会话中都是唯一的。
例:
bp 1234
为可见 CPU 设置一个断点,只要 PC 等于 1234,该断点就会停止执行。
bp 23456,a0 == 0 && a1 == 0
为可见 CPU 设置一个断点,只要 PC 等于 23456 且表达式 a0 == 0 && a1 == 0 为真,该断点就会停止执行。
bp 3456:audiocpu,1,{ printf “A0=%08X\n”,a0 ; g }
使用绝对标记路径 :audiocpu 为 CPU 设置一个断点,当 PC 等于 3456 时停止执行。当出现这种情况时,向调试器控制台打印 A0=<a0val> 并恢复执行。
bp 45678:2,a0==100,{ a0 = ff ; g }
在系统中的第三个 CPU 上设置一个断点(以零为索引),只要 PC 等于 45678 且表达式 a0 == 100 为真,该断点就会停止执行。当出现这种情况时,将 a0 设置为 ff 并恢复执行。
temp0 = 0 ; bp 567890,++temp0 >= 10
为可见 CPU 设置一个断点,只要 PC 等于 567890 且表达式 ++temp0 >= 10 为真,就停止执行。只有在断点被击中 16 次后,才会有效地中断执行。
bpclear
bpclear [<bpnum>[,…]]
清除断点。如果指定了 <bpnum>,将清除所指的断点。如果未指定 <bpnum>,则将清除所有断点。
例:
bpclear 3
清除索引为 3 的断点。
bpclear
清除所有断点。
bpdisable
bpdisable [<bpnum>[,…]]
禁用断点。如果指定了 <bpnum>,所指的断点将被禁用。如果未指定 <bpnum>,则将禁用所有断点。
请注意,禁用断点并不会删除断点,只是暂时将断点标记为非活动。禁用的断点不会导致执行停止,其相关的条件表达式不会被求值,其相关的命令也不会被执行。
例:
bpdisable 3
禁用索引为 3 的断点。
bpdisable
禁用所有断点。
bpenable
bpenable [<bpnum>[,…]]
启用断点。如果指定了 <bpnum>,将启用所指的断点。如果未指定 <bpnum>,则将启用所有断点。
Examples:
例:
bpenable 3
启用索引为 3 的断点。
bpenable
启用所有断点。
bplist
bplist [<CPU>]
列出当前断点及其索引和相关条件或操作。如果没有指定 <CPU>,则会列出系统中所有 CPU 的断点;如果指定了 <CPU>,则只会列出该 CPU 的断点。<CPU> 可以通过标签或调试器 CPU 编号指定(详见指定设备和地址空间)。
例:
bplist
列出所有断点
bplist .
列出可见 CPU 的所有断点。
bplist maincpu
以绝对标记路径 :maincpu 列出 CPU 的所有断点。