-
编译选项 “-g3 “, 可以获得更多的debug信息,比如GEMM_Q, GEMM_R等宏定义的信息
-
gdb 调试 , 调试命令 disas/disassemble 可以打印当前函数的汇编代码.
-
首先到达进入内嵌汇编的地方:然后敲入命令 : layout asm/src/ 展示汇编代码面板,list 可以显示src代码行
- 需要注意两个点:
- 比如快进入内嵌汇编(asm 入口,比如 openblas 代码comput(12))的时候 用layout asm显示汇编代码
- 然后 si,单指令执行,类似 n (next step )一样。
- 退出asm , 需要敲入命令 layout src
-
gdb的TUI模式类似screen,退出使用 Ctrl -x a
-
TUI模式查看寄存器的命令为: layout regs
-
display /10i $pc的方法与x /10i $pc在打印汇编上是同义的
- 把disas 输出写入文件:
(gdb)
set
logging
file
<
file
name>
(gdb)
set
logging on
(gdb) disass
(gdb)
set
logging off
-
Debugging_assembly_code
-
Debugging Applications with Intel ® SDE
-
xx
-
采用比较新的gdb 版本,比如:/usr/local/gdb13.1/bin/gdb
- 打印 向量寄存器:print $zmm0 会打印8个double 和512bit表示的其他类型数据组合,比如16个float, 64个int8 ..
- 打印向量寄存器值,指定数据类型格式的输出:举例:p(rint) $zmm4.v8_double
- 举例如下:$230 = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8}