如何解决我可以获取objdump --full-contents仅打印原始文本吗?
我有一个目标文件,该文件的节包含正确的ASCII(或Latin-1?)文本。所以,如果我写:
$ objdump -s my_file.so --section=.rodata
看起来像这样(仅从中间显示几行,显然很长):
070a80 656d3b0a 73697a65 5f742073 68617265 em;.size_t share
070a90 644d656d 50657242 6c6f636b 3b0a696e dMemPerBlock;.in
070aa0 74207265 67735065 72426c6f 636b3b0a t regsPerBlock;.
070ab0 696e7420 77617270 53697a65 3b0a7369 int warpSize;.si
070ac0 7a655f74 206d656d 50697463 683b0a69 ze_t memPitch;.i
070ad0 6e74206d 61785468 72656164 73506572 nt maxThreadsPer
070ae0 426c6f63 6b3b0a69 6e74206d 61785468 Block;.int maxTh
我的问题:是否可以使objdump仅打印文本而没有行索引和十六进制值?并至少正确打印所有打印字符(例如0x0a的换行符)?或者-我是否必须执行大量文本处理以将点与它们的值相关联,用适当的字符替换它们,剪切行前缀,删除人造换行符等?
解决方法
使用xxd
使用xxd可以避免cut
和awk
的出现,这是缺少objdump
标志的最佳解决方案。
将格式化的十六进制转储保存到文件temp
中,我们可以将结果通过管道传输到xxd -r
(期望使用这种格式的十六进制转储):
$ cat temp | xxd -r
em;
size_t sharedMemPerBlock;
int regsPerBlock;
int warpSize;
size_t memPitch;
int maxThreadsPerBlock;
int maxTh
如果您需要传入没有行号或ascii表示形式的十六进制字符串,请使用xxd -r -p。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。