dns-terror (fastresolve-2.10_5) core dump na FreeBSD 10.x
Dan Lukes
dan at obluda.cz
Mon Feb 29 01:40:35 CET 2016
On 02/28/16 23:49, Miroslav Lachman wrote:
> Zkusil jsem to prelozit s GCC, ale dns-terror stejne segfaultuje a ani mi to nejde debugovat:
> Reading symbols from /usr/local/lib/gcc48/libstdc++.so.6...Error while reading shared library symbols:
> Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module /usr/local/lib/gcc48/libstdc++.so.6]
Format debugovacich informaci je na gdb moc novy a neznamy. Jinymi
slovy, prilis nove gcc48 (a DWARF-4 format) na prilis stare gdb.
Bohuzel, nepomuzes si jednoduse ani tak, ze si pri prekladu explicitne
vyzadas starsi verzi (option -gdwarf-2 misto prosteho -g). To sice
zabere na preklady zdrojaku samotnych, ale DWARF-4 debugovaci informace
se do vysledku stejne dostanou - z prilinkovanych knihoven.
Musel bys knihovny gcc48 nejdriv stripnout, aby debugovaci informace
neobsahovaly vubec.
A to uz je snad jednodussi misto gcc 4.8 pouzit gcc 4.7 - ten snad jeste
DWARF-4 neumel.
> Myslim, ze ja uz se dal nedostanu
No,porad's to jeste nezkusil zkompilovat s -O optimalizacema. ;-)
Ja uz bych davno ten prelozenej kod projel disassemblerem (a hledal
vyskyt "neexistujici instrukce"), ale nemam vubec vyrobeny builder-stroj
s 10-R v 32bit verzi. A pro 64 bitovej binar zas nemam disassembler.
Taky muzes zkusit ICC misto GCC:
CC= ${LOCALBASE}/intel_cc_80/bin/icc
CXX= ${LOCALBASE}/intel_cc_80/bin/icpc
To ale taky muze byt dost napinava zmena ;-)
> kdyz jsem do Makefile ... pridal USE_GCC=yes
> ... dostane sileny seznam runtime zavislosti:
>
> New packages to be INSTALLED:
> gcc: 4.8.5_2 [debug]
> indexinfo: 0.2.4 [debug]
> mpc: 1.0.3 [codelab]
> gmp: 5.1.3_3 [debug]
> mpfr: 3.1.3_1 [debug]
> binutils: 2.25.1,1 [debug]
> gcc-ecj: 4.5 [debug]
> Prece tim, ze se na stejny kod pouzije jiny kompilator by se nemel zmenit seznam runtime zavislosti, ne?
No, tak to samozrejme mel, u dynamicky linkovanejch binaru. Pri behu
potrebujes knihovny, ktere se budou prilinkovavat. V pripade objektoveho
prekladu pomoci gcc 4.8 to nejspis bude minimalne libstdc++.6.so. Coz
znamena zavislost na lang/gcc48
No, a to ostatni jsou uz rekurzivni zavislosti samotneho gcc 4.8. A tech
je tam, pri defaultnim prekladu gcc, dost.
Dan
More information about the Users-l
mailing list