[aspectc-user] ac++ segfaults.

Thiago A. CorrĂȘa thiagoacorrea at uol.com.br
Thu Apr 22 04:55:33 CEST 2004


   I've been hunting this bug for the past few hours... I've managed to get
a stupid solution working, but it also made the ac++ almost 100% slower :(

   I have attached 2 files that I used to figure this bug(cg_f2.cpp and
revelation.ah), tried both under windows and under linux. gdb backtrace is
attached as well, for reference.
  The problem manifests itself in Puma/src/basics/List.cc, on the cut
method, called from within kill(). I figured that the from and the to
arguments are inverted, so my stupid solution ( inside the attached archive
as well ) was to check if "to" is reacheable from "from", and if not,
std::swap() them. After that change it worked just fine ( at least the
ac++ ). Obviously the bug really is not there, but I was unable to track it
down, I hope the AspectC++ devs will be able to figure out.

   Also, about the Win32 port... Puma calls opendir() under windows which is
not quite a valid API call. It should really call the FindFirst FindNext
stuff. There is something called Interix layer that provides the opendir()
call, but looks like it requires some sort of initialization that is never
performed. I really don't understand this stuff, it's all badly explained in

what I think is missing is:
#ifdef __INTERIX
(void) fcntl(fd, F_SETFL, fcntl(fd, F_GETFD) | FD_CLOEXEC));
(void) ioctl(fd, FIOCLEX, NULL);
but I couldn't test out since I haven't installed the cross compiler yetBest
Regards,   Thiago A. CorrĂȘa

-------------- next part --------------
A non-text attachment was scrubbed...
Name: aspect-segfault.zip
Type: application/x-zip-compressed
Size: 11172 bytes
Desc: not available
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20040421/172325cf/attachment.bin>

More information about the aspectc-user mailing list