我想在我的程序中运行objdump -d [sample]命令,然后我想在格式化版本中显示它的输出。例如,我想在其输出的每一行中显示其输出一个选项卡。我怎么能这样做?
cmd1 = "objdump -d "
name = "sample"
output = os.system(str(cmd1) + str(name))
print(output)
答案 0 :(得分:1)
您可以使用subprocess.check_output
:
In [864]: output = subprocess.check_output(['objdump -d a.out'], shell=True)
返回输出的字节字符串。然后,您可以使用str.decode
来显示您的数据。如果要缩进选项卡,可以在换行符上拆分,然后逐行打印,如下所示:
In [870]: for line in output.decode().split('\n'):
...: print('\t', line)
...:
a.out: file format Mach-O 64-bit x86-64
Disassembly of section __TEXT,__text:
__text:
100000fa0: 55 pushq %rbp
100000fa1: 48 89 e5 movq %rsp, %rbp
100000fa4: 31 c0 xorl %eax, %eax
100000fa6: c7 45 fc 00 00 00 00 movl $0, -4(%rbp)
100000fad: 5d popq %rbp
100000fae: c3 retq
_main:
100000fa0: 55 pushq %rbp
100000fa1: 48 89 e5 movq %rsp, %rbp
100000fa4: 31 c0 xorl %eax, %eax
100000fa6: c7 45 fc 00 00 00 00 movl $0, -4(%rbp)
100000fad: 5d popq %rbp
100000fae: c3 retq