私はカスタムARMボードを持っています。すべてのイメージを生成するためにbuildrootを使用します。私たちはglibcを使用しています。私はCライブラリ呼び出しの中でデバッグする必要があります。 "Set Verbose On"を指定してgdbの下でコードを実行すると、libc6.soからシンボルが読み込まれますが、Cライブラリ呼び出し(ブレークポイント)をfork(例えばfork)し、info locals/argsを実行すると、 "No symbol Info Table"と表示されます。 glibcソースコードからlibc6-dbgパッケージを生成
はReading symbols from /lib/ld-linux-armhf.so.3...done.
Loaded symbols for /lib/ld-linux-armhf.so.3
Reading symbols from /lib/libpthread.so.0...done.
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
(gdb) bt full
#0 0x76e19af0 in fork() from /lib/libc.so.6
No symbol table info available.
#1 0x76dded80 in [email protected]@GLIBC_2.4() from /lib/libc.so.6
No symbol table info available.
#2 0x76ddf04c in [email protected]@GLIBC_2.4() from /lib/libc.so.6
私のlibc.soは、すべてのデバッグシンボルを持っている..私はglibcのか、他の設定が必要とされて再構築する必要があります。以下のreadelfがの抜粋であることはlibc.so
[71] .debug_info PROGBITS 00000000 1277e0 00106b 00 0 0 1
[72] .debug_abbrev PROGBITS 00000000 12884b 0003f7 00 0 0 1
[73] .debug_line PROGBITS 00000000 128c42 0003e2 00 0 0 1
[74] .debug_frame PROGBITS 00000000 129024 002a78 00 0 0 4
[75] .debug_str PROGBITS 00000000 12ba9c 000360 01 MS 0 0 1
[76] .debug_loc PROGBITS 00000000 12bdfc 00162a 00 0 0 1
[77] .debug_ranges PROGBITS 00000000 12d426 0000c0 00 0 0 1
[78] .shstrtab STRTAB 00000000 12d4e6 000528 00 0 0 1
[79] .symtab SYMTAB 00000000 12da10 031700 10 80 10452 4
[80] .strtab STRTAB 00000000 15f110 018ed1 00 0 0 1
ありがとう...いいえ、私はgdbのCライブラリ呼び出しをデバッグすることができます...... –