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