汇编代码阅读工具与技巧

  1. 编译选项 “-g3 “, 可以获得更多的debug信息,比如GEMM_Q, GEMM_R等宏定义的信息

  2. gdb 调试 , 调试命令 disas/disassemble 可以打印当前函数的汇编代码.

  3. 首先到达进入内嵌汇编的地方:然后敲入命令 : layout asm/src/ 展示汇编代码面板,list 可以显示src代码行

  •     需要注意两个点:
    • 比如快进入内嵌汇编(asm 入口,比如 openblas 代码comput(12))的时候 用layout asm显示汇编代码
    • 然后 si,单指令执行,类似 n (next step )一样。
  • 退出asm , 需要敲入命令 layout src
  1. gdb的TUI模式类似screen,退出使用 Ctrl -x a

  2. TUI模式查看寄存器的命令为: layout regs

  3. display /10i $pc的方法与x /10i $pc在打印汇编上是同义的

  4. 把disas 输出写入文件:

    (gdb) set logging file <file name>

    (gdb) set logging on

    (gdb) disass

    (gdb) set logging off

  5. Debugging_assembly_code

  6. Debugging Applications with Intel ® SDE

  7. xx

  8. 采用比较新的gdb 版本,比如:/usr/local/gdb13.1/bin/gdb

    1. 打印 向量寄存器:print $zmm0 会打印8个double 和512bit表示的其他类型数据组合,比如16个float, 64个int8 ..
    2. 打印向量寄存器值,指定数据类型格式的输出:举例:p(rint) $zmm4.v8_double
    3. 举例如下:$230 = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8}
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值