我有一个在基于 ARM 的嵌入式设备上运行的程序。某个struct
全局可访问的,每隔一段时间就会被转储到磁盘,代表大约 160Kb 的数据。
我需要检查这个结构的内容。到目前为止,我已经使用 Python 脚本和struct
库来解析该转储的内容,但是这种方法不能很好地扩展。
我认为可以使用交叉编译的 GDB 程序来执行此操作。我想将该文件的内容复制回内存中的结构地址。所以这就是我尝试的:
$ arm-eabi-gdb
....
(gdb) target sim
Connected to the simulator.
(gdb) file MS.elf
Reading symbols from MS.elf...done.
(gdb) p &my_struct
$1 = (MyStruct *) 0x6801149c
(gdb) restore ~/Dumps/MS_20121128_164606 binary 0x6801149c
You can't do that without a process to debug.
这是正确的方法吗?如果是,我做错了什么?