dns-terror (fastresolve-2.10_5) core dump na FreeBSD 10.x
Dan Lukes
dan at obluda.cz
Thu Feb 25 21:06:58 CET 2016
Miroslav Lachman wrote:
>>> Program terminated with signal 4, Illegal instruction.
Tvuj kod:
> 0x0000000000405c23 <_ZN10BoolStringaSERKS_+35>: mov BYTE PTR [rsi+0x8],al
> 0x0000000000405c26 <_ZN10BoolStringaSERKS_+38>: ud2a
Zadna instrukce ud2a neexistuje.
Zbytek je trocha Googleni.
Linux a gcc pouziva u2da jako "instrukci, ktera urcite neexistuje". Kdyz
to jeste jednou prelozis, mel bys mezi warningama videt i takovyhle:
> warning: cannot pass objects of non-POD type '...' through '...'; call will abort at runtime
No, a jak gcc slibilo, tak, podle vseho, take udelalo - program ti abort
at runtime. Upgrade gcc / preklad pomoci jine verze gcc asi spis
nepomuze, snad jen v tom smyslu, ze od urcite verze dal uz to neni
warning ale error a zhavaruje to primo pri prekladu a ne az pri behu.
Podstatou je zdrojovy kod obsahujici konstrukt, jehoz vyznam neni v C++
definovany. GCC se rozhodlo nepokouset se uhadnout co tim autor myslel.
Moje znalost c++ je ovsem spise pasivni, takze cist ho dokazu, ale
obavam se, ze nikoliv opravit. To uz bude muset nekdo jiny, klidne autor
fastresolve.
> Pripadne da se "neco" zkusit upravit pri te kompilaci, aby to fungovalo?
Otazka je, proc se ti to preklada za pouziti GCC. Me to na 10.2-R
preklada systemovy clang a ten konstrukt prelozi (coz jeste neznamena,
ze to nakonec bude delat to, co autor zamyslel).
Copak ti napise
( cd /usr/ports/dns/fastresolve ; make -V CC )
a co
$( cd /usr/ports/dns/fastresolve ; make -V CC ) -v
Dan
More information about the Users-l
mailing list