我有点麻烦,需要帮助。
页: 1
gcc: Xcode version of gcc, 4.2.1
图书馆:gmp, gmpxx
问题:一项功能在最后坠毁,其结果是:
flx_run(94749) malloc: *** error for object 0x7fff706d1500: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Program received signal SIGABRT, Aborted.
0x00007fff835cd886 in __kill ()
(gdb) bt
#0 0x00007fff835cd886 in __kill ()
#1 0x00007fff8366deae in abort ()
#2 0x00007fff83585a75 in free ()
#3 0x00000001000bca45 in flxusr::gmp__hyphen_0::_init_ ()
Previous frame inner to this frame (gdb could not unwind past this frame)
我没有在“init的职能中呼吁自由()并且这一功能在封闭式掩饰之前是正确的,因此坠机点必须位于当地物体的 des子上(右面)
不可否认的是:
a) 如果静态地挂钩,该方案(种子)的工作就算不上了,但只有将守则建设成正文和有活力的负荷,才会失败。
b) the program fails the same way with two completely different versions of gmp/gmpxx. [4.3 or something and 5.01]
c) 静态和动态联系版本都在Ubu 10.5 LTS进行罚款
守则由我的编辑编制,不是手写的法典。 用户代码由高级司机方案管理。 该系统成功进行了数百次回归测试。 然而,在这种特殊测试案件中使用了以下手写法:
namespace flx { namespace gmp {
string flx_mpf_get_str(mpf_class const &a)
{
mp_exp_t x;
std::string s = a.get_str(x,10,0);
char b[100];
std::snprintf(b,100,"e%ld",(long)x);
return std::string(".")+s+b;
}
}}
but it looks fine to me. The stack frame of the function contains several mpz_class, mpq_class and mpf_class objects.
除了刺./刺.之外,我认为,我唯一可以认为的是,我的运行时间制度或产生的法典正在腐化记忆。 所谓“免费”的地址是可疑的(在离他处附近)。 我制作了一个带有——例如旗帜的刺).版,但没有获得更多的信息(这显示,它是一种没有穿过xx子的 bad子。
我需要一些想法! 现在我没有任何想法。 预支款:
与来文方的联系
http://felix-lang.org:1116/$/home/skaller/felix/build/release-optimized/test/gmp/gmp-0.cpp
梅塔:SO 标志下降 因此,你必须随手复制。
Might as well Bull in the connection to the Felix Code since it was a bit morereadable and has some fun reuff in it(如用户下定义的yn子,如果你去图书馆,你可以看到打上了打字)
http://felix-lang.org:1116/$/home/skaller/felix/build/release-optimized/test/gmp/gmp-0.flx