1

.dataしたがって、基本的に、ELF バイナリの,.rodataおよび.bssセクションの特定の列を出力したいので、次のコマンドを使用します。

readelf -S hello | grep "data\|bss" | cut -f1,2,5,6

しかし、驚いたことに、結果は次のとおりです。

 [15] .rodata           PROGBITS        080484d8 0004d8 000020 00   A  0   0  8
 [24] .data             PROGBITS        0804a00c 00100c 000008 00  WA  0   0  4
 [25] .bss              NOBITS          0804a014 001014 000008 00  WA  0   0  4

つまり、cut機能しませんでした...

理由がわかりません。オンラインで検索した後も、正しい方法がわかりません。誰か助けてもらえますか?

4

2 に答える 2

2

入力は、実際にはTABではなくスペースで区切られています。デフォルトでcutは TAB が必要です。これはうまくいくはずです:

cut -d ' ' -f1,2,5,6

区切り文字を ' ' (スペース) として指定します。

于 2014-04-21T05:17:55.183 に答える