You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Simics中是否存在设置带前缀断点的底层Python API?

Simics 中设置带前缀断点的底层Python API咨询

背景情况

Simics 6中的实现方式

在Simics 6中,可使用set-prefix前端命令为已创建的断点设置前缀,示例代码如下:

for bp in self.breakpoint_list:
    bp.break_num = SIM_breakpoint(bp.object, bp.addr_type, bp.mode, bp.addr, bp.length, bp.flags)
    if bp.prefix is not None:
        command = 'set-prefix %d "%s"' % (bp.break_num, bp.prefix)
        SIM_run_alone(SIM_run_command, command)

Simics 7中的问题

到了Simics 7,set-prefix命令被弃用,官方文档建议改用bp.memory.break命令,但该命令依赖前端处理器,在断点密集型脚本中运行效率低下。

混合API的风险

如果同时使用高效的SIM_breakpoint底层API和bp.memory.break命令来设置前缀,会存在编号冲突风险——因为bp.manager和SIM_breakpoint的断点编号并非互斥。以下是演示代码及运行结果:

演示代码

from simics import *
import cli
'''
  演示SIM_breakpoint和bp.memory.break的断点编号不互斥
'''
def theHap(cpu, the_obj, the_break, memory):
    print('in theHap break %d memory 0x%x' % (the_break, memory.logical_address))

cmd = 'ubuntu.get-processor-list'
proclist = SIM_run_command(cmd)
cpu = SIM_get_object(proclist[0])

print('Our cpu is %s' % cpu.name)

bp1 = SIM_breakpoint(cpu.current_context, Sim_Break_Linear, Sim_Access_Execute, 0x00000000b774d753, 1, 0)
print('added break %s with SIM_breakpoint' % bp1)
proc_hap = SIM_hap_add_callback_index("Core_Breakpoint_Memop", theHap, cpu, bp1)
print('Hap set on breakpoint %d' % bp1)

bp2 = SIM_run_command('bp.memory.break 0x00000000b774d75d')
print('added break %s with bp.memory.break' % bp2)
proc_hap = SIM_hap_add_callback_index("Core_Breakpoint_Memop", theHap, cpu, bp2)
print('Hap set on breakpoint %d' % bp2)

运行结果

simics> run-script prefix.py
Our cpu is ubuntu.mb.cpu0.core[0][0]
added break 1 with SIM_breakpoint
Hap set on breakpoint 1
added break 1 with bp.memory.break
Hap set on breakpoint 1
NIL
simics> c
in theHap break 1 memory 0xb774d753
in theHap break 1 memory 0xb774d753
[ubuntu.cell_context] Breakpoint 1: ubuntu.cell_context 'x' access to v:0xb774d75d len=3

提问

Simics中是否存在设置带前缀断点的底层Python API?

内容的提问来源于stack exchange,提问作者Mike Thompson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:35:03