对于64位二进制文​​件,%p格式为8个十六进制数字

时间:2017-01-19 13:32:40

标签: c gcc

我有一个64位二进制文​​件(sqlite的修改版本,但这不应该是mattrr):

uRank

使用GCC 4.7.4生成。但是,调试代码只能在格式字符串中为> file /home/aromanov/IdeaProjects/sqlite/sqlite3 /home/aromanov/IdeaProjects/sqlite/sqlite3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x39a2db352d3bc451ed621ad0588eec3008df034b, not stripped 输出8个十六进制数字(32位),我预计16这是正常的吗?

1 个答案:

答案 0 :(得分:1)

至少在linux / glibc上,%p格式说明符不会使用零填充左边距。因此指向例如地址0x000000000000ffff的格式简单为" 0xffff"。如果您想在输出中输入16位数,可以使用%.16p