debuginfo: brak sekcji .gnu_debuglink
Paweł Sikora
pluto w agmk.net
Pią, 1 Paź 2010, 19:36:06 CEST
On Friday 01 October 2010 18:10:57 Jan Palus wrote:
> On 28.09.2010 20:11, Jan Palus wrote:
> > Od jakiegos czasu staram sie zdiagnozowac dlaczego valgrind nie uzywa
> > plikow debuginfo. Przez przypadek natknalem sie na biblioteke z ktora
> > sobie radzi, mianowicie expat zbudowany rok temu. Roznica polega na tym,
> > ze expat ma sekcje .gnu_debuginfo z nazwa pliku i suma crc, a
> > inne biblioteki takiej sekcji nie posiadaja. Czy ktos zorientowany w
> > procesie tworzenia debuginfo ma pomysl gdzie ta sekcja przepada?
nigdzie nie przepada, bo *aktualnie* nie jest tworzona.
aktualnie w th nie tworzy sie ta sekcja poniewaz uzywamy build-id
z ktorym gdb radzi sobie doskonale. pakiet expat, to tylko wyjatek
ktory jeszcze nie zostal zrekompilowany w th.
$ gcc -gdwarf-3 -g2 t.c -o t
$ readelf -SW t|grep -i gnu
[ 3] .note.gnu.build-id NOTE 0000000000400274 000274 000024 00 A 0 0 4
[ 4] .gnu.hash GNU_HASH 0000000000400298 000298 00001c 00 A 5 0 8
[ 7] .gnu.version VERSYM 0000000000400338 000338 000006 02 A 5 0 2
[ 8] .gnu.version_r VERNEED 0000000000400340 000340 000020 00 A 6 1 8
> Zrodlem problemu jest patch rpm-new-debuginfo.patch, ktory zmienia
> wywolanie eu-strip:
zmienia w sposob prawidlowy. wczesniej eu-strip przy wyciaganiu debuginfo
stripowal oryginalna binarke zanim rpm mial szanse tego NIE zrobic
przy okazji roznych %define wykluczajacych stripowanie.
> strip_to_debug()
> {
> - eu-strip --remove-comment -f "$1" "$2" || :
> + local t=$(mktemp "/tmp/rpm.stripped.XXXXXX")
> + eu-strip --remove-comment -f "$1" "$2" -o "$t" || exit
> + rm -f "$t"
>
> przez co tracimy sekcje .gnu_debulink ktora zostaje w usunietym pliku
> $t.
usuniety plik $t to jest wystripowana do cna binarka i w pld-th
zadnego debuginfo tam nie ma. zmiana jak najbardziej prawidlowa.
> Glowna motywacja dla zmiany bylo strippowanie w innym miejscu
> procesu paczkowania. Niestety tracimy na tym mozliwosc uzywania
> debuginfo w narzedziach typu valgrind dlatego jezeli nie bedzie
> sprzeciwow to cofne te zmiane.
jeszcze raz. nie ma .gnu_debuginfo teraz. jesli valgrind z svn-a
tego nie potrafi obslugiwac build-id, to zglos im problem,
bo to jest najbadziej perspektywiczne rozwiazanie.
Więcej informacji o liście dyskusyjnej pld-devel-pl