转储可执行文件时,我只希望代码段打印标准输出。不是偏移和二进制形式的代码。我可以注意到它来自man objdump.Is有办法吗?
答案 0 :(得分:4)
您可以使用
禁止对象代码十六进制转储--no-show-raw-insn
如果您在代码中跳转,那么您需要偏移来理解它们,但是如果您真的想要剥离它们,请使用以下内容过滤代码:
objdump -d --no-show-raw-insn myfile.o | perl -p -e 's/^\s+(\S+):\t//;'
示例输出:
0000000000000000 <foo>:
retq
lea 0x0(%rsi),%rsi
lea 0x0(%rdi),%rdi
Disassembly of section .gnu.linkonce.t.goo:
0000000000000000 <goo>:
retq
lea 0x0(%rsi),%rsi
lea 0x0(%rdi),%rdi
答案 1 :(得分:0)
如果要获得与显示的 Peeter Joot 相同的输出,但不使用 Perl 命令行。然后,您可以改为使用 Grep 和 Cut 工具,如下所示。
from decimal import *
#start:
lInputSequence = []
i = 1
def suffix():
if i%10 == 1 and i != 11:
return "st"
elif i%10 == 2 and i != 12:
return "nd"
elif i%10 == 3 and i != 13:
return "rd"
else:
return "th"
decInputElement = 1
while True:
try:
decInputElement = Decimal(input("Enter " + str(i)
+ "%s element (or type '0' to finish). \n" % suffix()))
if decInputElement == 0:
break
else:
lInputSequence.append(decInputElement)
i = i+1
except Exception:
print("Please enter a number.")
print(lInputSequence)
print("The sum of these %s elements is %s" % (len(lInputSequence),sum(lInputSequence)))
#end