| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[feature] 支持simt step over功能&修复ascend info devices输出展示 Co-authored-by: wangyixian<wangyixian3@huawei.com> # message auto-generated for no-merge-commit merge: !146 merge fix_info_devices into master [feature] 支持simt step over功能&修复ascend info devices输出展示 Created-by: wiyr0 Commit-by: wangyixian Merged-by: ascend-robot Description: ### 1. 修改描述 - **修改原因:** https://gitcode.com/Ascend/msdebug/issues/89 - **修改方案:** 1. vf内是可以不使用stack的,这个意味着当执行call指令后,新的栈和老的栈的cfa是一致的,此时调试协议无法区分当前pc所在位置是执行n的位置的下一行还是函数内。这里只能通过当前frame和上一个frame是否在同一个函数内,如是,则说明当前位置的frame是step in的 2. simt vf内的sp ra寄存器分别是r2, (r0,r1),这里需要构造个虚拟的寄存器,表示(r0,r1)的组合 3. 950 simt上,每个指令最小的size是8字节,这里就需要新增一个专门解析950 simt上的指令大小的逻辑,所以需要有当前soc_type,pos_type,这些数据就直接放ArchSpec类里,简易点 3. ascend info devices命令的输出,vector core数量已经超过64,需要用两个u64表示, 这里参考友商,直接展示128bit。 - **修改内容:** 1. 新增 Ascend 950 反汇编器:添加 AscendDisassembler950 类,支持 950 芯片的分支/调用/返回指令识别,处理变长指令(4/8/16 字节),并根据 InterruptPosType 调整 SIMT 模式下指令大小。 2. InterruptPosType (pos_type) 传递链路:在 ArchSpec 中新增 m_pos_type 成员及其 getter/setter;在反汇编、步进(StepRange/StepOver)、Process 等多处从 DeviceStopInfo获取并设置 pos_type,传递给反汇编器用于判断中断位置类型。 3. SIMT 帧比较修复(ThreadPlanStepRange):SIMT 内核下多线程共享 CFA,新增符号上下文/函数对比逻辑,避免帧被误判 4. SIMT LR 寄存器:新增 dwarf_simt_lr_ascend / lldb_simt_lr_ascend,ReadSimtLr 读取 r0+r1 组成链接寄存器;在 RegisterContextUnwind 中,SIMT 模式下覆盖 RA 寄存器为 dwarf_simt_lr_ascend。 5. ascend info devices 命令重构:改用 PrettyPrintTable 表格化输出,高亮当前设备行;移除旧的 WriteLine 方法。 6. 反汇编接口扩展:所有 Ascend 反汇编器的 GetInstruction 方法新增 InterruptPosType pos_type 参数;GetBit 校验从 != 4 改为 < 4 以兼容变长指令。 7. 其他:hiipu64 默认 cal 对齐从 4 改为 16;950 设备信息忽略 aic_bitmap1;新增若干调试 打印。 - [x] **涉及代码双合**(贴上另一个PR链接):不涉及. ---- ### 2. 功能验证 - [x] **功能自验截图**(请确保不体现个人信息)   - [x] **冒烟是否通过**  ---- ### 3. 代码检视 - **要求:** - 合入功能代码大于 200 行,需要sig会议申报代码检视议题,并在PR中标注会议。 - committer评估是否需要在sig会议进行代码检视。 - 参与检视的committer人员名单与检视时间。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [x] **是否经过代码检视** - [x] **是否具备UT测试用例看护** 不影响 - [ ] **是否需要在sig会议中进行代码检视** - **检视committer人员名单与检视时间:** ---- ### 4. 资料修改自检 - **资料修改:** 不影响 ---- See merge request: Ascend/msdebug!146 | 29 天前 | |
[lldb/Plugin] Move DisassemblerLLVMC for consistency with plugin (NFC) Rename the DisassemblerLLVMC directory from llvm to LLVMC to match the plugin name. | 6 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 29 天前 | ||
| 6 年前 |