为了提高开发和调试效率,可以使用NDB的.readmem命令来将主机上编译好的程序模块通过调试会话加载到目标机。
基本步骤如下:
1. 执行.readmem命令
比如: .readmem f:\gem3.elf 0x0`eb1d11d0 L0
上述命令是将gem3.elf加载目标系统的0x0`eb1d11d0位置。地址中的小撇是重音符号,用于分隔64位数的高32位和低32位。
最后一个参数L0用于指定内存区的长度,0代表使用文件程度,也就是加载整个文件。
如果指定了非0的内存长度(MemLen),那么规则如下:
- 如果MemLen > FileLen,那么多余内存区会被填充0
- 如果MemLen < FileLen,那么只读文件的部分内容
使用d或者u命令检查加载结果
比如db 0x0`eb1d11d0
db 0x0`eb1d11d0
00000000`eb1d11d0 7f 45 4c 46 01 01 01 00-00 00 00 00 00 00 00 00 .ELF............
00000000`eb1d11e0 02 00 28 00 01 00 00 00-b9 0a 00 08 34 00 00 00 ..(.........4...
00000000`eb1d11f0 6c 42 07 00 00 02 00 05-34 00 20 00 02 00 28 00 lB......4. ...(.
00000000`eb1d1200 18 00 17 00 01 00 00 00-00 00 01 00 00 00 00 08 ................
00000000`eb1d1210 00 00 00 08 a8 1c 00 00-a8 1c 00 00 07 00 00 00 ................
00000000`eb1d1220 00 00 01 00 01 00 00 00-00 00 02 00 00 00 00 20 ...............
00000000`eb1d1230 a8 1c 00 08 7c 00 00 00-b0 06 00 00 06 00 00 00 ....|...........
00000000`eb1d1240 00 00 01 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
使用r pc=xx命令跳转到执行入口
不带参数的r命令可以观察当前寄存器的值
r
x0=0x00000000eb1d1250 x1=0x0000000000000000 x2=0x000000000000000a x3=0x0000000000000010
x4=0x0000000000000010 x5=0x00000000ffffffff x6=0x0000000000000021 x7=0x00000000ed734d30
x8=0x0000000008000032 x9=0x00000000efff0000 x10=0x000000000000023f x11=0x0000000000000008
x12=0x000000000000023f x13=0x0000000000000000 x14=0x0000000000000000 x15=0x0000000000000000
x16=0x0000000000000000 x17=0x0000000000000000 x18=0x00000000eb1ffce0 x19=0x0000000000000000
x20=0x0000000000000000 x21=0x0000000000000000 x22=0x0000000000000000 x23=0x0000000000000000
x24=0x0000000000000000 x25=0x0000000000000000 x26=0x0000000000000000 x27=0x0000000000000000
x28=0x0000000000000000 fp=0x00000000eb1d11d0 lr=0x00000000ed6fb760 sp=0x00000000eb1d11d0
pc=0x00000000ed55ea00 pstate=0x0000000060000209 - Z C - - - - - - D - - - EL2
ed55ea00 a9bf7bfd stp x29, x30, [sp, #-0x10]!
使用r pc=xx命令可以修改pc寄存器的值
修改后,使用g命令恢复目标系统执行
作者:Zhang Yinkui 创建时间:2025-08-04 18:19
最后编辑:Zhang Yinkui 更新时间:2025-08-06 11:03
最后编辑:Zhang Yinkui 更新时间:2025-08-06 11:03