我正在编写 Sparc V8 的 C++ 仿真模型。内存被简单地建模为一个数组。我需要读取一个由交叉编译器生成的 elf 可执行文件并用它来初始化内存。我打算这样做如下。
sparc-elf-readelf --hex-dump=.text --hex-dump=.rodata --hex-dump=.data <elf-file> > dump.txt
grep "0x" dump.txt >dump2.txt
这会生成一个(地址、单词、单词)格式的文本文件,如下所示:
0x00000000 88100000 09000000 81c120b0 01000000 .......... .....
0x00000010 91d02000 01000000 01000000 01000000 .. .............
0x00000020 91d02000 01000000 01000000 01000000 .. .............
0x00000030 91d02000 01000000 01000000 01000000 .. .............
0x00000040 91d02000 01000000 01000000 01000000 .. .............
0x00000050 a1480000 29000000 81c521a8 01000000 .H..).....!.....
0x00000060 a1480000 29000000 81c52220 01000000 .H..)....." ....
0x00000070 91d02000 01000000 01000000 01000000 .. .............
...
问:最后一列中的所有点是什么?
问:有没有更好的方法从 elf 可执行文件生成内存映像?我想我只需要复制 .text、.rodata 和 .data 部分
感谢您的任何建议