MAME模拟器debug帮助文档汉化四(执行调试器命令)

在这里插入图片描述

执行调试器命令

step

步进执行 <count> 指令(F11)

over

步出执行 <计数> 指令 (F10)

out

步进,直到当前子程序/异常处理程序返回(Shift-F11)

go

恢复执行(F5)

gbt

恢复执行,直到执行下一个结果为真的分支

gbf

恢复执行,直到执行下一个结果为假的分支

gex

恢复执行,直到出现异常

gint

恢复执行,直至中断 (F7)

gni

恢复执行,直至下一条指令

gtime

恢复执行,直至指定的延迟时间结束

gvblank

恢复执行,直至下一个垂直同步 (F8)

next

恢复执行,直至下一次切换 CPU (F6)

focus

目标设置为当前<CPU>

ignore

在 <CPU> 上停止调试

observe

在 <CPU> 上恢复调试

trace

将指定的 CPU 跟踪记录存储到文件中

traceover

跳过子程序,将指定的 CPU 跟踪记录存储到文件中

traceflush

刷新所有打开的跟踪文件。

step

s[tep] [<count>]

在当前执行的 CPU 上单步执行一条或多条指令。如果省略<count>,则执行一条指令;如果提供<count>,则执行<count>指令。

例:

s

在当前 CPU 上向前执行一条指令。

step 4

在当前 CPU 上向前执行四条指令。

over

o[ver] [<count>]

over 命令单步 "步过 "当前执行 CPU 上的一条或多条指令,步过子程序调用和异常处理程序,并将其视为一条指令。请注意,当步过子程序调用时,代码可能会在子程序返回前在其他 CPU 上执行。

如果省略 <count>,则跳过一条指令;如果提供 <count> 指令,则跳过 <count> 指令。

请注意,并非所有 CPU 类型都能实现 step over 功能。如果没有实现,over 的行为将与 step 完全相同。

例:

o

在当前 CPU 上向前执行一条指令。

over 4

在当前 CPU 上向前移动四个指令。

out

out

单步执行,直到遇到从子程序返回或从异常返回指令。需要注意的是,由于它能检测从异常返回的条件,如果试图跳出子程序,而在子程序完成前发生了中断/异常,执行可能会在异常处理程序结束时提前停止。

请注意,并非所有 CPU 类型都能实现 step out 功能。如果没有实现,out 的行为将与 step 完全相同。

例:

out

直到当前子程序或异常处理程序返回为止。

go

g[o] [<address>]

恢复执行。直到触发断点或观察点,或手动请求调试器中断,控制权才会返回调试器。如果提供了可选的\ <address>,将在指定地址为可见 CPU 设置一个临时无条件断点。触发后将自动清除。

例:

g

继续执行,直到触发断点/观察点,或手动请求断点。

g 1234

恢复执行,停止在地址 1234,除非有其他条件导致执行在以下情况之前停止

gbf

gbf [<condition>]

恢复执行。直到触发断点或监视点,或在任何延迟槽之后未执行条件分支或跳转指令,控制权才会返回调试器。

通过可选的 <condition> 参数,可以指定每次遇到条件分支时都要评估的表达式。如果表达式的结果为 true(非零),则在不执行分支后停止执行;否则,将继续执行而不发出通知。

例:

gbf
继续执行,直到触发断点/观察点,或直到下一个结果为false的分支。
gbf {pc != 1234}

继续执行,直到下一个结果为假的分支,忽略地址为 1234 的指令。

gbt

gbt [<condition>]

恢复执行。直到触发断点或观察点,或在任何延迟槽之后执行条件分支或跳转指令,控制权才会返回调试器。

通过可选的 <condition> 参数,可以指定每次遇到条件分支时都要评估的表达式。如果表达式的结果为 true(非零),则执行分支后将停止执行;否则,将继续执行,不会发出任何通知。

例:

gbt

继续执行,直到触发断点/观察点,或直到下一个结果为真的分支。

gbt {pc != 1234}

继续执行,直到下一个结果为真的分支,忽略地址为 1234 的指令。

gex

ge[x] [<exception>,[<condition>]]

恢复执行。直到触发断点或观察点,或当前 CPU 出现异常条件,才会将控制权返回调试器。使用可选的 <exception> 参数,可以仅在特定异常条件下停止执行。如果省略 <exception>,则会在任何异常条件下停止执行。

通过可选的 <condition> 参数,可以指定一个表达式,每次指定的异常条件触发时,都会对该表达式进行评估。如果表达式的结果为 true(非零),异常将停止执行;否则,将继续执行,不会发出任何通知。

例:

gex
恢复执行,直至触发断点/观察点,或当前 CPU 出现异常条件。
ge 2

继续执行,直至触发断点/观察点,或当前 CPU 出现异常条件 2。

gint

gi[nt] [<irqline>]

恢复执行。在触发断点或观察点之前,或在当前 CPU 上发出并确认中断之前,控制权不会返回调试器。使用可选的 <irqline> 参数,可仅在断言和确认特定中断行时停止执行。如果省略 <irqline>,执行将在任何中断被确认时停止。

例:

gi
恢复执行,直至触发断点/观察点,或当前 CPU 上的任何中断被发出和确认。
gint 4

恢复执行,直至触发断点/观察点,或当前 CPU 的中断请求线 4 被确认。

gni

gni [<count>]

恢复执行。在触发断点或观察点之前,控制权不会返回调试器。在程序地址 指令处设置一个无条件的临时断点,该断点依次经过当前指令。当该断点被触发时,它会自动移除。

<count> 参数是可选的,如果省略,默认值为 1。如果 <count> 指定为 0,命令将不起作用。<count> 不允许超过 512 个十进制数。

例:

gni

继续执行,直至触发断点/观察点,包括在下一条指令地址处设置的临时断点。

gni 2

继续执行,直到触发断点/观察点。临时断点设置在当前指令的两个指令之后。

gtime

gt[ime] <milliseconds>

恢复执行。在指定的模拟时间间隔结束之前,控制权不会返回调试器。时间间隔以毫秒为单位。

例:

gtime #10000

恢复执行十秒钟。

gvblank

gv[blank]

恢复执行。直到触发断点或观察点,或直到模拟屏幕的垂直同步开始,控制权才会返回调试器。

例:

gv

继续执行,直到触发断点/观察点或开始垂直同步。

next

n[ext]

恢复执行,直到进入另一个 CPU 。如果 CPU 因使用忽略或焦点而被忽略,则在调度 CPU 时不会停止执行。

例:

n
恢复执行,当进入了另一个未被忽略的 CPU 时停止执行。

focus

focus <CPU>

只关注指定的 <CPU>,忽略所有其他 CPU。<CPU> 参数可以是设备标签或调试器 CPU 编号。这相当于使用 ignore 命令忽略指定 CPU 以外的所有 CPU。

例:

focus 1

只关注系统中的第二个 CPU(基于零的索引),忽略所有其他 CPU。

focus audiopcb:melodycpu

专注于 CPU绝对标签路径  :audiopcb:melodycpu 。

ignore

ignore [<CPU>[,<CPU>[,…]]]

忽略调试器中指定的 CPU。CPU 可以通过标签或调试器 CPU 编号指定。调试器从不显示被忽略 CPU 的执行情况,被忽略 CPU 上的断点或观察点也不起作用。如果没有指定 CPU,则会列出当前忽略的 CPU。使用 observe 命令可停止忽略 CPU。

请注意,不能忽略所有 CPU;必须始终观察至少一个 CPU。

例:

ignore audiocpu

使用调试器时,忽略带有绝对标记路径 :audiocpu 的 CPU。

ignore 2,3,4

使用调试器时,忽略系统中的第三个、第四个和第五个 CPU(基于零的索引)。

ignore

列出调试器当前忽略的 CPU。

observe

observe [<CPU>[,<CPU>[,…]]]

允许与调试器中指定的 CPU 交互。CPU 可以通过标签或调试器 CPU 编号指定。该命令与忽略命令的效果相反。如果没有指定 CPU,则会列出当前观察到的 CPU。

例:

observe audiocpu

在使用调试器时,停止忽略带有绝对标记路径 :audiocpu 的 CPU。

observe 2,3,4

在使用调试器时,停止忽略系统中的第三、第四和第五个 CPU(基于零的索引)。

observe

列出调试器当前正在观察的 CPU。

trace

trace {<filename>|off}[,<CPU>[,[noloop|logerror][,<action>]]]

启动或停止跟踪指定 <CPU> 的执行,如果未指定 CPU,则跟踪当前可见的 CPU。要启用跟踪,请在 <filename> 参数中指定跟踪日志文件名。要禁用跟踪,请在 <filename> 参数中使用关键字 off。如果 <filename> 参数以两个直角括号 (>>) 开头,它将被视为打开文件进行附加而非覆盖的指令。

可选的第三个参数是一个标志字段。支持的标志有 noloop 和 logerror。多个标志必须用 | 字符分隔。默认情况下,将检测到循环并将其压缩为一行。如果指定了 noloop 标志,则不会检测到循环,每条指令都将被记录为已执行。如果指定 logerror 标志,错误日志输出将包含在跟踪日志中。

可选的 <action> 参数是在记录每条跟踪信息前执行的调试器命令。一般来说,这将包括 tracelog 或 tracesym 命令,以便在跟踪日志中包含更多信息。请注意,您可能需要用大括号 { } 将动作包围起来,以确保命令中的逗号和分号不会在跟踪命令本身的上下文中被解释。

例:

trace joust.tr
开始跟踪当前可见 CPU 的执行情况,并将输出记录到文件 joust.tr。
trace dribling.tr,maincpu

使用绝对标记路径 :maincpu: 开始跟踪 CPU 的执行情况,并将输出记录到文件 dribling.tr。

trace starswep.tr,noloop

开始跟踪当前可见 CPU 的执行情况,将输出记录到文件 starswep.tr,并禁用循环检测。

trace starswep.tr,1,logerror

开始跟踪系统中第二个 CPU 的执行情况(基于零的索引),将输出和错误日志输出记录到文件 starswep.tr。

trace starswep.tr,0,logerror|noloop

开始跟踪系统中第一个 CPU 的执行情况(基于零的索引),将输出和错误日志输出记录到文件 starswep.tr,并禁用循环检测。

trace >>pigskin.tr

开始跟踪当前可见 CPU 的执行情况,并将日志输出附加到文件 pigskin.tr。

trace off,0

关闭对系统中第一个 CPU 的跟踪(基于零的索引)。

trace asteroid.tr,{tracelog "A=%02X ",a}

开始跟踪当前可见 CPU 的执行情况,并将输出记录到文件 asteroid.tr。在每一行之前,输出 A=<aval> 到跟踪日志。

traceover

traceover {<filename>|off}[,<CPU>[,[noloop|logerror][,<action>]]]

开始或停止跟踪指定的 <CPU>,如果没有指定 CPU,则开始或停止跟踪当前可见的 CPU。遇到子程序调用时,跟踪将跳过该子程序。所使用的算法与 step over 命令相同。如果使用递归函数,或者返回地址不是紧跟在调用指令之后,则无法正常工作。

该命令接受的参数与跟踪命令相同。有关选项的详细说明和更多示例,请参阅相应章节。

例:

traceover joust.tr

开始跟踪当前可见 CPU 的执行情况,并将输出记录到文件 joust.tr。

traceover dribling.tr,maincpu

使用绝对标记路径 :maincpu: 开始跟踪 CPU 的执行情况,将输出记录到文件 dribling.tr 中

traceover starswep.tr,noloop

开始跟踪当前可见 CPU 的执行情况,将输出记录到文件 starswep.tr,并禁用循环检测。

traceover off,0

关闭对系统中第一个 CPU 的跟踪(基于零的索引)。

traceover asteroid.tr,{tracelog "A=%02X ",a}

开始跟踪当前可见 CPU 的执行情况,并将输出记录到文件 asteroid.tr。在每一行之前,输出 A=<aval> 到跟踪日志。

traceflush

traceflush

将所有打开的跟踪日志文件刷新到磁盘。

例:

traceflush

刷新跟踪日志文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值