[GiNaC-list] archiving custom functions

Alexei Sheplyakov alexei.sheplyakov at gmail.com
Thu Sep 30 18:37:42 CEST 2010


Hello,

> After doing a gdb backtrace, I see that it crashes on l. 310 of ex.cpp, which is
> 
> const ex & tmpex = other.eval(1);

This sounds like a missing hold() in a user-defined function, but might
be a GiNaC bug as well.
 
> and it seems that GiNaC goes into an infinite loop trying to construct an expression from basic.
> 
> backtrace:
> 
> #0  GiNaC::ex::construct_from_basic (other=@0x6b4890) at ex.cpp:293
> #1  0x0000000000416509 in GiNaC::symbol::eval (this=0x6b4890, level=1) at /usr/local/include/ginac/ex.h:255
> #2  GiNaC::ex::construct_from_basic (other=@0x6b4890) at ex.cpp:293
> #3  0x0000000000416509 in GiNaC::symbol::eval (this=0x6b4890, level=1) at /usr/local/include/ginac/ex.h:255
> #4  GiNaC::ex::construct_from_basic (other=@0x6b4890) at ex.cpp:293
> #5  0x0000000000416509 in GiNaC::symbol::eval (this=0x6b4890, level=1) at /usr/local/include/ginac/ex.h:255
> ...
> (at least 10k of those lines)

The backtrace sort of confirms my idea, but we need the outermost
frames to find out what's actually going on.

gdb ./that/program

[wait until it segfaults]

bt -16

and post the output here.

Best regards,
	Alexei



More information about the GiNaC-list mailing list