首页 > 技术知识 > 正文

3.Command Reference

说明:这里列举的是常用command,就是上面的命令窗口,输入命令就可以进行相应的调试。

3.1 载入文件 add-symbol-file filename [offset] [-s section address] (1)如果-s没有指定,load的地址=entry point+ offset (2)-s指定的是section,比如.text,.data等 add-symbol-file vmlinux -s .text 0x1000 -s .data 0x2000 load的符号表,.text段重定位到0x1000 discard-symbol-file 删除symbols reload-symbol-file 重新加载,如果之前没加载会报错 3.2 断点 break <addr> 软件断点 hbreak <addr> 硬件断点 thbreak <addr> 硬件断点,不过中断后会自动disable clear <addr> 删除一个断点 delete breakpoints 删除多个断点,breakpoints赋值具体的断点号,不然为所有 enable/disable breakpoints 使能/取消断点 3.3执行调试 next step nexti step over continue/stop/interrupt 个人感觉使用按钮会更方便。 3.4 memory和MMU

3.4.1 memory

dump 读取内存新建的一个文件中,自动帮我们建文件 例子:dump memory 2.bin 0x40008000 0x40008c00 //读取该范围的内存到2.bin中 append 读取内存追加到原有的一个文件中,该文件必须之 前建好 assemble可以修改内核的汇编代码到内存

例子: ARM DS5调试记录(2)命令介绍说明

这样子,在Disassembly里面就会产生相关的修改 。

memory set 往内存里面写东西 ARM DS5调试记录(2)命令介绍说明1 这里要说明一下,上面的0和8是写带宽,如果指定为0则是系统指定,其他还有4,16,32,64。

memory set_typed 往内存写一串数据 ARM DS5调试记录(2)命令介绍说明2

由于很多操作,都可以直接对memory窗口直接操作,这里不再列举。

3.4.2.MMU

MMU的很多操作都可以在MMU的窗口里面操作,比较直观,这里不详述。

4.register

info all-registers 显示出所有寄存器以及相关的值 info registers 显示指定的寄存器 例如:info registers R1

5. info 查找信息

这里列举一下特有的,至于info breakpoints这些查看断点的,因为在窗口上看很直观这里就不一一列举了。

info signals 显示异常类型 info handle 显示处理类型 info cores 显示处理器状态 info files 显示导入的image的段信息

ARM DS5调试记录(2)命令介绍说明3

info sources 根据导入的文件得到源码的位置 info process 显示用户进程信息 OS ID (pid), OS Parent ID, kind, OS state, current state, related stack frame including the function names and source line number. info threads 显示线程信息 栈信息显示: backtrace,info stack,where

格式:info stack [ n | -n ] [full] // n指定栈底开始第几层 // -n 指定栈顶开始第几层 backtrace [ n | -n ] [full] where [ n | -n ] [full] //显示调用的栈 backtrace设置默认的操作,当执行info stack的时候 set backtrace limit 10 #显示至第十层 set backtrace limit 0 #显示整个栈

show backtrace limit #显示设置 frame 作用:设置当前的指针指向调用的栈然后显示函数名称,源 码行数等。 格式:frame [number] //调到numberi指定的层,然后显示 该层对应的信息 //默认为0 info frame [number] 显示栈的消息 格式:frame [number]

猜你喜欢