Trace32相关

1, Trace32的配置步骤

当拿到trace32的安装包后找到bin目录下的t32start.exe可执行文件,打开该文件然后配置(是要进行GDB调试还是在线调试ARM板子等等)

Trace32相关_第1张图片


2,Trace32的相关命令

Trace32是不区分大小写的,所以以下命令字母大小写都可以。

查看当前的栈帧: f 命令

查看某一个内存地址对应的值: d.dump  %address  如果要dump某一个地址范围的值,可以这样输入 d.dump 0x1000--0x2000   --     ++

查看物理地址和虚拟地址的映射关系: MMU.list

查看当前汇编的运行情况,灰色一行表示的是当前PC寄存器的运行  Data.list    or  d.l 

查看当前各个寄存器的值: Register.view  or  r  

查看某一个内存地址的值对应的寄存器指令    d.dump  %address  右击某一个地址 view info菜单

查看系统运行所有进程的信息: task.dtask

查看T32 backtrace栈帧 和对应汇编寄存器的状态: B:f命令弹出当前的栈帧,然后点击 up down命令回退当前的栈,再通过l命令打印出当前的寄存器汇编执行情况,此时可以对照寄存器(R命令)和汇编判断
加载源代码和elf格式调试信息文件:  data.load.elf Y:\log\ramdump\ramdump\vmlinux /nocode /strippart"kernel" /sourcepath "\\test\\test\kernel"

设置CPU环境: sys.cpu CORTEXA7    sys.up

使用F1可以弹出帮助文档:比如:Data.save.BINARY C:\tes 0xc01c7a90++0x30

data.load.binary C:\Users\dayuw\Documents\CR\74606\DDRCS0.BIN 0x40000000    其中0x40000000表示的是将binary load到的目标起始地址
Data.Set 0x100 "hello world" 0x0 ; set string to memory
Data.Set 0x100 %Long 0x12345678 ; write long word
Data.Set 0x0--0x0ffff 0x0 ; init memory with 0
NoCODE Suppress the code download. Only loads symbolic information.

使用T32查看全局变量的时候可以使用 tab键补全功能,比如 v.v 空格 然后按tab键补全

在trace32上双击某个进程然后选择code files可以看到该进程调用到的各个库文件以及其地址信息

通过T32查看进程用户空间的调用栈:选择某一个进程先点击Switch Context,然后再点击scan page table,这样再根据对应的地址加载用户空间的库信息就可以查看某个进程用户空间的调用栈信息。

r.s pc 0xffffffc000ab7498
r.s sp 0xffffffc09e063880


3,cmm脚本学习

cmm脚本相关学习

trace32 cmm脚本常用命令



4,Trace32查看memory的相关命令以及相关字段的含义

Trace32相关_第2张图片

Trace32相关_第3张图片

To dump a physical address,  D A:0x00000000



5,创建T32的快捷方式

lunch.bat
start C:\T32\bin\windows64\t32MARM64.exe -c C:\Users\result/t32_config.t32,
 
t32_config.t32
OS=
ID=T32_1000002
TMP=C:\TEMP
SYS=C:\T32
HELP=C:\T32\pdf
 
PBI=SIM
 
SCREEN=
FONT=SMALL
HEADER=Trace32-ScorpionSimulator
 
PRINTER=WINDOWS
 
RCL=NETASSIST
PACKLEN=1024
PORT=22221


你可能感兴趣的:(debug相关)