According to Neil Kohl:
> Sorry that C++ isn't my strongest language, otherwise I'd have attempted
> the patch.

I can relate.  ht://Dig was the first C++ code I'd ever looked at, so
I was pretty baffled by it when I started.  I know C, though, so it was
pretty easy to figure out some of the basics and figure the rest out
from there, with the help of some other users on the list (esp. Geoff).

> Here's a transcript of the run and a backtrace:
> 
> neilk@acpsun01$ htfuzzy -c acpjc.conf -v -v synonyms
> htfuzzy: Selected algorithm: synonyms
> htfuzzy/synonyms: 0 abdomen
> htfuzzy/synonyms: 10 acei
> htfuzzy/synonyms: 20 adhd
> htfuzzy/synonyms: 30 juvenile
> htfuzzy/synonyms: 40 longevity
> htfuzzy/synonyms: 50 allergen
> htfuzzy/synonyms: 60 amebicides
> htfuzzy/synonyms: 70 amputation
> htfuzzy/synonyms: 80 anaemia
> htfuzzy/synonyms: 90 angioplasty
> htfuzzy/synonyms: 100 anoxaemia
> Segmentation Fault(coredump)

Hmmm.  I wonder if we couldn't benefit from a synonyms dictionary like
that on the Spinal Cord Research Centre web site.

> neilk@acpsun01$ ls
> acpjc.conf      acpjcadv.conf   core
> neilk@acpsun01$ adb `which htfuzzy` core
> core file = core -- program ``htfuzzy'' on platform SUNW,Ultra-5_10
> SIGSEGV: Segmentation Fault
> $C
> blalign() + a04
>         [savfp=0xffbef430,savpc=0x2f834]
> blalign(b5080,acf00,17,ffff2ec0,58,a8030) + 54
>         [savfp=0xffbef490,savpc=0x2f834]
> copy_data_from__6StringPcii(ffbef5d0,acf18,ffffffff,0,81010100,ff00) + 10
>         [savfp=0xffbef500,savpc=0x2ee30]
> append__6StringPci(ffbef5d0,acf18,ffffffff,0,583ac,ff223bac) + 48
>         [savfp=0xffbef570,savpc=0x2cb4c]
> Put__8DatabasePcT1i(aedf8,ffbef5d0,acf18,ffffffff,b8da4,3e0) + 34
>         [savfp=0xffbef600,savpc=0x2a3a8]
> createDB__7SynonymR13Configuration(0,ffbef678,ffbef698,a6de8,84c00,84c00) + 208
>         [savfp=0xffbefa90,savpc=0x2ada8]
> main(a7c70,ffbefbd4,a3c00,ffbefb50,0,0) + 64c
>         [savfp=0x0,savpc=0x2700c]

OK, thanks!  I think this pretty much confirms my suspicions.  createDB
is calling Put with a -1 (ffffffff) as the 3rd argument (size)*, which
gets passed on to copy_data_from via append.  blalign must be part of
a builtin implementation of memcpy, because memcpy is the only "function"
that copy_data_from calls.

In any case, the 2 patches I sent yesterday should solve this problem.
I'm now running a snapshot of yesterday's CVS on my website, including
the 2 fixes to Synonym.cc and String.cc, and it's working like a charm,
so I don't think I broke anything.

* the 3rd argument to a C++ method appears as the 4th argument in the
stack backtrace, because the extra 1st argument in the backtrace is the
address of the object (this) which the method is operating on.

-- 
Gilles R. Detillieux              E-mail: <[EMAIL PROTECTED]>
Spinal Cord Research Centre       WWW:    http://www.scrc.umanitoba.ca/~grdetil
Dept. Physiology, U. of Manitoba  Phone:  (204)789-3766
Winnipeg, MB  R3E 3J7  (Canada)   Fax:    (204)789-3930

_______________________________________________
htdig-general mailing list <[EMAIL PROTECTED]>
To unsubscribe, send a message to <[EMAIL PROTECTED]> with a 
subject of unsubscribe
FAQ: http://htdig.sourceforge.net/FAQ.html

Reply via email to