2017-11-16 11 views
1

.rodataセクションは定数データをELFファイルに保存しています。しかし、私がカーネルモジュールのELFをダンプすると、rodata.str1.8rodata.str1.1という2つの余分なセクションがあることがわかりました。これらの2つのセクションには定数変数と文字列も格納されているようです。しかし、これらの3つの違いは何ですか?rodataelfファイルの `.rodata.str1.8`セクションの意味

答えて

0

.rodata.str1.1には、整列要件のない文字列があり、.rodata.str1.8は8バイト整列である必要があります。 readelfのELFファイルを見ると、これは表示されます:

Section Headers: 
    [Nr] Name    Type   Addr  Off Size ES Flg Lk Inf Al 
    [ 0]     NULL   00000000 000000 000000 00  0 0 0 
    [ 1] .text    PROGBITS  00000000 000034 000050 00 AX 0 0 4 
    [ 2] .rela.text  RELA   00000000 000184 000030 0c I 8 1 4 
    [ 3] .data    PROGBITS  00000000 000084 000000 00 WA 0 0 1 
    [ 4] .bss    NOBITS   00000000 000084 000000 00 WA 0 0 1 
    [ 5] .rodata.str1.8 PROGBITS  00000000 000088 000010 01 AMS 0 0 8 <--- 
    [ 6] .comment   PROGBITS  00000000 000098 000019 01 MS 0 0 1 
    [ 7] .shstrtab   STRTAB   00000000 0001b4 000049 00  0 0 1 
    [ 8] .symtab   SYMTAB   00000000 0000b4 0000a0 10  9 7 4 
    [ 9] .strtab   STRTAB   00000000 000154 00002f 00  0 0 1 
Key to Flags: 
    W (write), A (alloc), X (execute), M (merge), S (strings) 
    I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown) 
    O (extra OS processing required) o (OS specific), p (processor specific) 
関連する問題