2017-07-18 7 views
-1

私のプログラムでobjdump -d [sample]コマンドを実行したいのですが、整形されたバージョンでその出力を表示したいと思います。たとえば、出力の各行に1つのタブで出力を表示したいとします。どうやってやるの?フォーマットされたバージョンのプログラム出力を出力するには

cmd1 = "objdump -d " 
name = "sample" 
output = os.system(str(cmd1) + str(name)) 
print(output) 
+0

'os.system'は「出力」を返しません。整数戻りコードを返します。だから、まずは、電話の悪い選択。その文書を確認してください。 – MariusSiuram

答えて

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 
関連する問題