plantage quand je bouge un point
Modérateur : xcasadmin
Re: plantage quand je bouge un point
pas de chance, on n'arrive pas à afficher la valeur de la variable en frame 29 (c'est la raison du segfault), il faut monter en f 31 et faire p tmp.dbgprint() en espérant que ça n'engendre pas une segfault. Et aussi en f 30, p i pour voir la valeur de i, et p w.dbgprint() pour la valeur de w.
Re: plantage quand je bouge un point
voilà :parisse a écrit :pas de chance, on n'arrive pas à afficher la valeur de la variable en frame 29 (c'est la raison du segfault), il faut monter en f 31 et faire p tmp.dbgprint() en espérant que ça n'engendre pas une segfault.
Code : Tout sélectionner
(gdb) f 61
#61 0x00007f326f71b90c in xcas::Graph2d::geometry_round (this=0x195e320, x=2.3296125019542613,
y=3.8713087318087318, z=0, eps=0.15338196392785572, tmp=..., contextptr=0x18d5560)
at Graph.cc:3439
3439 selected=nearest_point(plot_instructions,tmp,eps,contextptr);
(gdb) p tmp.dbgprint()
$1 = void
Code : Tout sélectionner
[widget_size([0,18],100,50,900,789,1,0,0,[88,255,60,255,216,255,56,255,56,255,49],"/usr/bin/firefox",0,0),cas_setup(0,0,0,1,0,[1e-10,1e-15],12,[1,50,0,25],0,0,0),xcas_mode(0),xyztrange(-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-1.4,1.1,1,0.0,1.0,1)]
// User configuration done
2.32961250195+3.87130873181*i
*** segmentation fault: bug in PARI or calling program.
Erreur de segmentation
euh... je ne vois pas de variable i ni w en f30.parisse a écrit :Et aussi en f 30, p i pour voir la valeur de i, et p w.dbgprint() pour la valeur de w.
j'ai répété la manip du plantage et je ne retrouve plus la même configuration :
Code : Tout sélectionner
#0 0x00007f458589b4b5 in raise () from /lib/libc.so.6
#1 0x00007f458589ef50 in abort () from /lib/libc.so.6
#2 0x00007f458613acc5 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#3 0x00007f45861390f6 in ?? () from /usr/lib/libstdc++.so.6
#4 0x00007f4586139123 in std::terminate() () from /usr/lib/libstdc++.so.6
#5 0x00007f458613921e in __cxa_throw () from /usr/lib/libstdc++.so.6
#6 0x00007f45860d8937 in std::__throw_length_error(char const*) () from /usr/lib/libstdc++.so.6
#7 0x00007f45899860c6 in std::vector<giac::gen, std::allocator<giac::gen> >::reserve (this=0x7f4580f0ac60,
__n=6148914691236517537) at /usr/include/c++/4.4/bits/vector.tcc:68
#8 0x00007f458949887c in giac::evalf_VECT (v=..., subtype=0, level=25, contextptr=0x7f457c0020a0) at gen.cc:1484
#9 0x00007f458949bb5e in giac::gen::in_evalf (this=0x7f457c0026d8, level=25, evaled=..., contextptr=0x7f457c0020a0)
at gen.cc:1891
#10 0x00007f458949b05c in giac::gen::evalf (this=0x7f457c0026d8, level=25, contextptr=0x7f457c0020a0) at gen.cc:1781
#11 0x00007f4589105651 in giac::symbolic::evalf (this=0x7f457c0026c0, level=25, contextptr=0x7f457c0020a0)
at symbolic.cc:454
#12 0x00007f458949bee7 in giac::gen::in_evalf (this=0x7f457c001460, level=25, evaled=..., contextptr=0x7f457c0020a0)
at gen.cc:1908
#13 0x00007f458949b05c in giac::gen::evalf (this=0x7f457c001460, level=25, contextptr=0x7f457c0020a0) at gen.cc:1781
#14 0x00007f45894988ac in giac::evalf_VECT (v=..., subtype=0, level=25, contextptr=0x7f457c0020a0) at gen.cc:1486
#15 0x00007f458949bb5e in giac::gen::in_evalf (this=0x7f457c002638, level=25, evaled=..., contextptr=0x7f457c0020a0)
at gen.cc:1891
#16 0x00007f458949b05c in giac::gen::evalf (this=0x7f457c002638, level=25, contextptr=0x7f457c0020a0) at gen.cc:1781
#17 0x00007f4589105651 in giac::symbolic::evalf (this=0x7f457c002620, level=25, contextptr=0x7f457c0020a0)
at symbolic.cc:454
#18 0x00007f458949bee7 in giac::gen::in_evalf (this=0x7f4580f0cbe0, level=25, evaled=..., contextptr=0x7f457c0020a0)
at gen.cc:1908
#19 0x00007f458949b05c in giac::gen::evalf (this=0x7f4580f0cbe0, level=25, contextptr=0x7f457c0020a0) at gen.cc:1781
#20 0x00007f458949c916 in giac::gen::evalf2double (this=0x7f4580f0cbe0, level=25, contextptr=0x7f457c0020a0)
at gen.cc:1977
#21 0x00007f4589321d3a in giac::plotparam (f=..., vars=..., attributs=..., densityplot=true, function_xmin=0,
function_xmax=1, function_ymin=-10, function_ymax=10, function_tmin=0, function_tmax=1, function_tstep=0.01,
contextptr=0x1e9c380) at plot.cc:6224
#22 0x00007f4589324da0 in giac::paramplotparam (args=..., densityplot=true, contextptr=0x1e9c380) at plot.cc:6422
#23 0x00007f4589324ecc in giac::_plotparam (args=..., contextptr=0x1e9c380) at plot.cc:6425
#24 0x00007f45894303ca in giac::unary_function_eval::operator() (this=0x7f4589884e60, arg=..., context_ptr=0x1e9c380)
at unary.h:143
#25 0x00007f458942b2a5 in giac::unary_function_ptr::operator() (this=0x1f671f0, arg=..., context_ptr=0x1e9c380)
at unary.cc:35
#26 0x00007f4589103b21 in giac::symbolic::eval (this=0x1f671f0, level=25, contextptr=0x1e9c380) at symbolic.cc:294
#27 0x00007f458949a1ba in giac::gen::in_eval (this=0x1e9c650, level=25, evaled=..., contextptr=0x1e9c380) at gen.cc:1680
#28 0x00007f4589499a92 in giac::gen::eval (this=0x1e9c650, level=25, contextptr=0x1e9c380) at gen.cc:1633
#29 0x00007f45893e4629 in giac::protecteval (g=..., level=25, contextptr=0x1e9c380) at prog.cc:4759
#30 0x00007f4589288c39 in giac::in_thread_eval (arg=0x1e9bc40) at global.cc:2567
#31 0x00007f45886c7a04 in start_thread () from /lib/libpthread.so.0
#32 0x00007f45859477bd in clone () from /lib/libc.so.6
#33 0x0000000000000000 in ?? ()
(gdb)
Code : Tout sélectionner
chris@Cosmos:~/poubelle/giac-0.8.4$ xcas
// Using locale /usr/local/share/locale/
// fr_FR.UTF-8
// /usr/local/share/locale/
// giac
// UTF-8
GSL error handler off
Help file aide_cas not found
// Unable to open help file aide_cas
// Using keyword file doc/fr/keywords
Added 0 synonyms
// Using menu file doc/fr/xcasex
// Using menu file doc/fr/xcasmenu
// Unable to find config file /usr/local/share/giac//xcas.rc
// Reading config file /home/chris/.xcasrc
[widget_size([0,18],100,50,900,789,1,0,0,[88,255,60,255,216,255,56,255,56,255,49],"/usr/bin/firefox",0,0),cas_setup(0,0,0,1,0,[1e-10,1e-15],12,[1,50,0,25],0,0,0),xcas_mode(0),xyztrange(-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-10.0,10.0,-1.4,1.1,1,0.0,1.0,1)]
// User configuration done
*** glibc detected *** xcas: malloc(): memory corruption (fast): 0x00007f457c004681 ***
======= Backtrace: =========
/lib/libc.so.6[0x7f45858dddd6]
/lib/libc.so.6[0x7f45858e14c0]
/lib/libc.so.6(__libc_malloc+0x6e)[0x7f45858e27ee]
/usr/lib/libstdc++.so.6(_Znwm+0x1d)[0x7f458613964d]
/usr/local/lib/libgiac.so.0(_ZN4giac3genC1ERKNS_15dbgprint_vectorIS0_EEs+0x58)[0x7f4589490a12]
/usr/local/lib/libgiac.so.0(_ZN4giac10evalf_VECTERKNS_15dbgprint_vectorINS_3genEEEiiPKNS_7contextE+0x267)[0x7f4589498a5b]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen8in_evalfEiRS0_PKNS_7contextE+0x79a)[0x7f458949bb5e]
terminate called after throwing an instance of 'std::length_error'
what(): vector::reserve
Abandon
Code : Tout sélectionner
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f6c1951b910 (LWP 26616)]
0x00007f6c1def7bf4 in ?? () from /lib/libc.so.6
(gdb) bt
#0 0x00007f6c1def7bf4 in ?? () from /lib/libc.so.6
#1 0x00007f6c1def5fda in memmove () from /lib/libc.so.6
#2 0x00007f6c21713d37 in std::__copy_move<false, true, std::random_access_iterator_tag>::__copy_m<std::string const*> (__first=0xb358a0, __last=0xb35888,
__result=0x7f6c14004f58) at /usr/include/c++/4.4/bits/stl_algobase.h:378
#3 0x00007f6c21713cf1 in std::__copy_move_a<false, std::string const**, std::string const**> (__first=0xb358a0, __last=0xb35888, __result=0x7f6c14004f58)
at /usr/include/c++/4.4/bits/stl_algobase.h:397
#4 0x00007f6c21713cb9 in std::__copy_move_a2<false, std::string const**, std::string const**> (__first=0xb358a0, __last=0xb35888, __result=0x7f6c14004f58)
at /usr/include/c++/4.4/bits/stl_algobase.h:436
#5 0x00007f6c21713c63 in std::copy<std::string const**, std::string const**> (
__first=0xb358a0, __last=0xb35888, __result=0x7f6c14004f58)
at /usr/include/c++/4.4/bits/stl_algobase.h:468
#6 0x00007f6c21713c22 in std::__uninitialized_copy<true>::uninitialized_copy<std::string const**, std::string const**> (__first=0xb358a0, __last=0xb35888,
__result=0x7f6c14004f58)
at /usr/include/c++/4.4/bits/stl_uninitialized.h:93
#7 0x00007f6c21713b7f in std::uninitialized_copy<std::string const**, std::string const**> (__first=0xb358a0, __last=0xb35888, __result=0x7f6c14004f58)
at /usr/include/c++/4.4/bits/stl_uninitialized.h:117
#8 0x00007f6c21713aa8 in std::__uninitialized_copy_a<std::string const**, std::string const**, std::string const*> (__first=0xb358a0, __last=0xb35888,
__result=0x7f6c14004f58)
at /usr/include/c++/4.4/bits/stl_uninitialized.h:257
#9 0x00007f6c217138d2 in std::__uninitialized_move_a<std::string const**, std::string const**, std::allocator<std::string const*> > (__first=0xb358a0,
__last=0xb35888, __result=0x7f6c14004f58, __alloc=...)
at /usr/include/c++/4.4/bits/stl_uninitialized.h:267
#10 0x00007f6c217134bf in std::vector<std::string const*, std::allocator<std::string const*> >::_M_insert_aux (this=0xa9ff60, __position=...,
__x=@0x7f6c19517000) at /usr/include/c++/4.4/bits/vector.tcc:344
#11 0x00007f6c21713244 in std::vector<std::string const*, std::allocator<std::string const*> >::push_back (this=0xa9ff60, __x=@0x7f6c19517000)
at /usr/include/c++/4.4/bits/stl_vector.h:741
#12 0x00007f6c2170fce0 in giac::symbolic::eval (this=0x7f6c14003e60, level=25,
contextptr=0x7f6c14001e60) at symbolic.cc:223
#13 0x00007f6c21aa71ba in giac::gen::in_eval (this=0x7f6c14003f68, level=25,
evaled=..., contextptr=0x7f6c14001e60) at gen.cc:1680
#14 0x00007f6c21aa6a92 in giac::gen::eval (this=0x7f6c14003f68, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1633
#15 0x00007f6c21a5e942 in giac::_of (args=..., contextptr=0x7f6c14001e60)
at usual.cc:2895
#16 0x00007f6c21a3d3ca in giac::unary_function_eval::operator() (
this=0x7f6c21e9dc20, arg=..., context_ptr=0x7f6c14001e60) at unary.h:143
#17 0x00007f6c21a382a5 in giac::unary_function_ptr::operator() (
this=0x7f6c14003f10, arg=..., context_ptr=0x7f6c14001e60) at unary.cc:35
#18 0x00007f6c2171220d in giac::symbolic::evalf (this=0x7f6c14003f10,
level=25, contextptr=0x7f6c14001e60) at symbolic.cc:421
#19 0x00007f6c21aa8ee7 in giac::gen::in_evalf (this=0x7f6c14001890, level=25,
evaled=..., contextptr=0x7f6c14001e60) at gen.cc:1908
#20 0x00007f6c21aa805c in giac::gen::evalf (this=0x7f6c14001890, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1781
#21 0x00007f6c21aa58ac in giac::evalf_VECT (v=..., subtype=0, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1486
#22 0x00007f6c21aa8b5e in giac::gen::in_evalf (this=0x7f6c14005088, level=25,
evaled=..., contextptr=0x7f6c14001e60) at gen.cc:1891
#23 0x00007f6c21aa805c in giac::gen::evalf (this=0x7f6c14005088, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1781
#24 0x00007f6c21712651 in giac::symbolic::evalf (this=0x7f6c14005070,
---Type <return> to continue, or q <return> to quit---
level=25, contextptr=0x7f6c14001e60) at symbolic.cc:454
#25 0x00007f6c21aa8ee7 in giac::gen::in_evalf (this=0x7f6c14000b20, level=25,
evaled=..., contextptr=0x7f6c14001e60) at gen.cc:1908
#26 0x00007f6c21aa805c in giac::gen::evalf (this=0x7f6c14000b20, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1781
#27 0x00007f6c21aa58ac in giac::evalf_VECT (v=..., subtype=0, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1486
#28 0x00007f6c21aa8b5e in giac::gen::in_evalf (this=0x7f6c14001bb8, level=25,
evaled=..., contextptr=0x7f6c14001e60) at gen.cc:1891
#29 0x00007f6c21aa805c in giac::gen::evalf (this=0x7f6c14001bb8, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1781
#30 0x00007f6c21712651 in giac::symbolic::evalf (this=0x7f6c14001ba0,
level=25, contextptr=0x7f6c14001e60) at symbolic.cc:454
#31 0x00007f6c21aa8ee7 in giac::gen::in_evalf (this=0x7f6c19519be0, level=25,
evaled=..., contextptr=0x7f6c14001e60) at gen.cc:1908
#32 0x00007f6c21aa805c in giac::gen::evalf (this=0x7f6c19519be0, level=25,
contextptr=0x7f6c14001e60) at gen.cc:1781
#33 0x00007f6c21aa9916 in giac::gen::evalf2double (this=0x7f6c19519be0,
level=25, contextptr=0x7f6c14001e60) at gen.cc:1977
#34 0x00007f6c2192ed3a in giac::plotparam (f=..., vars=..., attributs=...,
densityplot=true, function_xmin=0, function_xmax=1, function_ymin=-10,
function_ymax=10, function_tmin=0, function_tmax=1, function_tstep=0.01,
contextptr=0xa23590) at plot.cc:6224
#35 0x00007f6c21931da0 in giac::paramplotparam (args=..., densityplot=true,
contextptr=0xa23590) at plot.cc:6422
#36 0x00007f6c21931ecc in giac::_plotparam (args=..., contextptr=0xa23590)
at plot.cc:6425
#37 0x00007f6c21a3d3ca in giac::unary_function_eval::operator() (
this=0x7f6c21e91e60, arg=..., context_ptr=0xa23590) at unary.h:143
#38 0x00007f6c21a382a5 in giac::unary_function_ptr::operator() (this=0xb4f0d0,
arg=..., context_ptr=0xa23590) at unary.cc:35
#39 0x00007f6c21710b21 in giac::symbolic::eval (this=0xb4f0d0, level=25,
contextptr=0xa23590) at symbolic.cc:294
#40 0x00007f6c21aa71ba in giac::gen::in_eval (this=0xaa00f0, level=25,
evaled=..., contextptr=0xa23590) at gen.cc:1680
#41 0x00007f6c21aa6a92 in giac::gen::eval (this=0xaa00f0, level=25,
contextptr=0xa23590) at gen.cc:1633
#42 0x00007f6c219f1629 in giac::protecteval (g=..., level=25,
contextptr=0xa23590) at prog.cc:4759
#43 0x00007f6c21895c39 in giac::in_thread_eval (arg=0xa264e0) at global.cc:2567
#44 0x00007f6c20cd4a04 in start_thread () from /lib/libpthread.so.0
#45 0x00007f6c1df547bd in clone () from /lib/libc.so.6
#46 0x0000000000000000 in ?? ()
Cela semble plutôt aléatoire comme plantage....
En réfléchissant à ce que tu as dit (il relance un truc pendant le plotparam) et à mes tests, j'ai une intuition : le problème ce serait-il pas dû aux processeurs double coeur ?
Mes deux PC qui ont le plantage sont double coeur (amd64-linux et intel-win32) alors que celui qui ne plante pas est un simple coeur.
A mon dernier plantage, grace à gdb la fenetre xcas se fige et la ligne plotparam indique "calcul en cours".
Le soucis est peut-être lié à des calculs qui se font en parallèle sur les 2 processeurs...
En tout cas, si tu veux que je continue le débug, pas de problème...
A+
Re: plantage quand je bouge un point
je pense qu'il faut que tu continues a debugguer, car ton intuition est probablement bonne mais ca ne m'indique pas ou est le probleme. Il faudrait arriver a comprendre pourquoi, par exemple le 2eme plantage c'est dans paramplotparam que ca plante en f 35 au moment d'une evaluation numerique, il faudrait regarder la valeur de l'objet qui est evalue pour comprendre. Pour un gen g, tu peux faire p g pour voir ses differents champs et p g.dbprint() devrait t'afficher sa valeur (telle que renvoyee par << en C++). Le 2eme appel peut faire planter a nouveau le programme si g a des champs memoire corrompus.
Re: plantage quand je bouge un point
premiers résultats sur paramplotparam :
et
et
en fait, je ne sais pas trop quoi chercher !
j'espère que ça t'aidera
Code : Tout sélectionner
(gdb) bt
#0 0x00007f6c665664b5 in raise () from /lib/libc.so.6
#1 0x00007f6c66569f50 in abort () from /lib/libc.so.6
#2 0x00007f6c66e05cc5 in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/libstdc++.so.6
#3 0x00007f6c66e040f6 in ?? () from /usr/lib/libstdc++.so.6
#4 0x00007f6c66e04123 in std::terminate() () from /usr/lib/libstdc++.so.6
#5 0x00007f6c66e0421e in __cxa_throw () from /usr/lib/libstdc++.so.6
#6 0x00007f6c66da3937 in std::__throw_length_error(char const*) ()
from /usr/lib/libstdc++.so.6
#7 0x00007f6c6a6510c6 in std::vector<giac::gen, std::allocator<giac::gen> >::reserve (this=0x7f6c61cfb9a0, __n=12297829382473033241)
at /usr/include/c++/4.4/bits/vector.tcc:68
#8 0x00007f6c6a16387c in giac::evalf_VECT (v=..., subtype=0, level=25,
contextptr=0x153e320) at gen.cc:1484
#9 0x00007f6c6a166b5e in giac::gen::in_evalf (this=0x1540e78, level=25,
evaled=..., contextptr=0x153e320) at gen.cc:1891
#10 0x00007f6c6a16605c in giac::gen::evalf (this=0x1540e78, level=25,
contextptr=0x153e320) at gen.cc:1781
#11 0x00007f6c69dd0651 in giac::symbolic::evalf (this=0x1540e60, level=25,
contextptr=0x153e320) at symbolic.cc:454
#12 0x00007f6c6a166ee7 in giac::gen::in_evalf (this=0x7f6c61cfcbe0, level=25,
evaled=..., contextptr=0x153e320) at gen.cc:1908
#13 0x00007f6c6a16605c in giac::gen::evalf (this=0x7f6c61cfcbe0, level=25,
contextptr=0x153e320) at gen.cc:1781
#14 0x00007f6c6a167916 in giac::gen::evalf2double (this=0x7f6c61cfcbe0,
level=25, contextptr=0x153e320) at gen.cc:1977
#15 0x00007f6c69fecd3a in giac::plotparam (f=..., vars=..., attributs=...,
densityplot=true, function_xmin=0, function_xmax=1, function_ymin=-10,
function_ymax=10, function_tmin=0, function_tmax=1, function_tstep=0.01,
contextptr=0x7f6c5c287430) at plot.cc:6224
#16 0x00007f6c69fefda0 in giac::paramplotparam (args=..., densityplot=true,
contextptr=0x7f6c5c287430) at plot.cc:6422
#17 0x00007f6c69fefecc in giac::_plotparam (args=...,
contextptr=0x7f6c5c287430) at plot.cc:6425
#18 0x00007f6c6a0fb3ca in giac::unary_function_eval::operator() (
this=0x7f6c6a54fe60, arg=..., context_ptr=0x7f6c5c287430) at unary.h:143
#19 0x00007f6c6a0f62a5 in giac::unary_function_ptr::operator() (
this=0x7f6c5c307480, arg=..., context_ptr=0x7f6c5c287430) at unary.cc:35
#20 0x00007f6c69dceb21 in giac::symbolic::eval (this=0x7f6c5c307480, level=25,
contextptr=0x7f6c5c287430) at symbolic.cc:294
#21 0x00007f6c6a1651ba in giac::gen::in_eval (this=0x7f6c5c2b3ec0, level=25,
evaled=..., contextptr=0x7f6c5c287430) at gen.cc:1680
#22 0x00007f6c6a164a92 in giac::gen::eval (this=0x7f6c5c2b3ec0, level=25,
contextptr=0x7f6c5c287430) at gen.cc:1633
#23 0x00007f6c6a0af629 in giac::protecteval (g=..., level=25,
contextptr=0x7f6c5c287430) at prog.cc:4759
#24 0x00007f6c69f53c39 in giac::in_thread_eval (arg=0x7f6c5c2be1e0)
at global.cc:2567
#25 0x00007f6c69392a04 in start_thread () from /lib/libpthread.so.0
#26 0x00007f6c666127bd in clone () from /lib/libc.so.6
#27 0x0000000000000000 in ?? ()
(gdb) f 16
#16 0x00007f6c69fefda0 in giac::paramplotparam (args=..., densityplot=true,
contextptr=0x7f6c5c287430) at plot.cc:6422
6422 return plotparam(f,vars,attributs,densityplot,xmin,xmax,ymin,ymax,tmin,tmax,tstep,contextptr);
(gdb) p f
$1 = {subtype = 0, type = 8, {val = 22284288,
_DOUBLE_val = 1.100990114283234e-316, ptr_val = {{__ZINTptr = 0x1540800,
__REALptr = 0x1540800, __CPLXptr = 0x1540800, __IDNTptr = 0x1540800,
__SYMBptr = 0x1540800, __MODptr = 0x1540800, __EXTptr = 0x1540800,
__FRACptr = 0x1540800, __POLYptr = 0x1540800, __VECTptr = 0x1540800,
__SPOL1ptr = 0x1540800, __STRNGptr = 0x1540800, __FUNCptr = 0x1540800,
__ROOTptr = 0x1540800, __USERptr = 0x1540800, __MAPptr = 0x1540800,
__EQWptr = 0x1540800, __GROBptr = 0x1540800,
__POINTER_val = 0x1540800}, ref_count = 0x1540860}}}
(gdb) p vars
$2 = {subtype = 0, type = 6, {val = 1546333264,
_DOUBLE_val = 6.9220266691429947e-310, ptr_val = {{
__ZINTptr = 0x7f6c5c2b2c50, __REALptr = 0x7f6c5c2b2c50,
__CPLXptr = 0x7f6c5c2b2c50, __IDNTptr = 0x7f6c5c2b2c50,
__SYMBptr = 0x7f6c5c2b2c50, __MODptr = 0x7f6c5c2b2c50,
__EXTptr = 0x7f6c5c2b2c50, __FRACptr = 0x7f6c5c2b2c50,
__POLYptr = 0x7f6c5c2b2c50, __VECTptr = 0x7f6c5c2b2c50,
__SPOL1ptr = 0x7f6c5c2b2c50, __STRNGptr = 0x7f6c5c2b2c50,
__FUNCptr = 0x7f6c5c2b2c50, __ROOTptr = 0x7f6c5c2b2c50,
__USERptr = 0x7f6c5c2b2c50, __MAPptr = 0x7f6c5c2b2c50,
__EQWptr = 0x7f6c5c2b2c50, __GROBptr = 0x7f6c5c2b2c50,
__POINTER_val = 0x7f6c5c2b2c50}, ref_count = 0x7f6c5c2b1590}}}
(gdb) p attributs
$3 = {<std::vector<giac::gen, std::allocator<giac::gen> >> = {<std::_Vector_base<giac::gen, std::allocator<giac::gen> >> = {
_M_impl = {<std::allocator<giac::gen>> = {<__gnu_cxx::new_allocator<giac::gen>> = {<No data fields>}, <No data fields>}, _M_start = 0x1540940,
_M_finish = 0x1540958,
_M_end_of_storage = 0x1540958}}, <No data fields>}, <No data fields>}
(gdb) p f.dbgprint()
$4 = void
Code : Tout sélectionner
(gdb) f 15
#15 0x00007f6c69fecd3a in giac::plotparam (f=..., vars=..., attributs=...,
densityplot=true, function_xmin=0, function_xmax=1, function_ymin=-10,
function_ymax=10, function_tmin=0, function_tmax=1, function_tstep=0.01,
contextptr=0x7f6c5c287430) at plot.cc:6224
6224 xy_=xy.evalf2double(eval_level(contextptr),newcontextptr);
(gdb) p f
$6 = (class giac::gen &) @0x7f6c61cfd530: {subtype = 0, type = 8, {
val = 22284288, _DOUBLE_val = 1.100990114283234e-316, ptr_val = {{
__ZINTptr = 0x1540800, __REALptr = 0x1540800, __CPLXptr = 0x1540800,
__IDNTptr = 0x1540800, __SYMBptr = 0x1540800, __MODptr = 0x1540800,
__EXTptr = 0x1540800, __FRACptr = 0x1540800, __POLYptr = 0x1540800,
__VECTptr = 0x1540800, __SPOL1ptr = 0x1540800, __STRNGptr = 0x1540800,
__FUNCptr = 0x1540800, __ROOTptr = 0x1540800, __USERptr = 0x1540800,
__MAPptr = 0x1540800, __EQWptr = 0x1540800, __GROBptr = 0x1540800,
__POINTER_val = 0x1540800}, ref_count = 0x1540860}}}
(gdb) p f.dbgprint()
$7 = void
Code : Tout sélectionner
(gdb) f 18
#18 0x00007f6c6a0fb3ca in giac::unary_function_eval::operator() (
this=0x7f6c6a54fe60, arg=..., context_ptr=0x7f6c5c287430) at unary.h:143
143 gen operator () (const gen & arg,const context * context_ptr) const { return op(arg,context_ptr); };
(gdb) p this
$8 = (const giac::unary_function_eval * const) 0x7f6c6a54fe60
(gdb) p this.dbgprint()
Cannot resolve method (null)dbgprint to any overloaded instance
(gdb) p arg
$9 = (class giac::gen &) @0x7f6c5c307498: {subtype = 1, type = 7, {
val = 1546669648, _DOUBLE_val = 6.9220266857625725e-310, ptr_val = {{
__ZINTptr = 0x7f6c5c304e50, __REALptr = 0x7f6c5c304e50,
__CPLXptr = 0x7f6c5c304e50, __IDNTptr = 0x7f6c5c304e50,
__SYMBptr = 0x7f6c5c304e50, __MODptr = 0x7f6c5c304e50,
__EXTptr = 0x7f6c5c304e50, __FRACptr = 0x7f6c5c304e50,
__POLYptr = 0x7f6c5c304e50, __VECTptr = 0x7f6c5c304e50,
__SPOL1ptr = 0x7f6c5c304e50, __STRNGptr = 0x7f6c5c304e50,
__FUNCptr = 0x7f6c5c304e50, __ROOTptr = 0x7f6c5c304e50,
__USERptr = 0x7f6c5c304e50, __MAPptr = 0x7f6c5c304e50,
__EQWptr = 0x7f6c5c304e50, __GROBptr = 0x7f6c5c304e50,
__POINTER_val = 0x7f6c5c304e50}, ref_count = 0x7f6c5c3048e0}}}
(gdb) p arg.dbgprint()
$10 = void
j'espère que ça t'aidera
Re: plantage quand je bouge un point
le probleme c'est qu'il faudrait que j'ai acces a gdb... Deja il y a un truc bizarre, c'est que les p f.dbgprint() ne t'affichent rien d'autre que void, il devrait t'afficher f aussi! Sinon, dans le f 15, le plantage apparait la
xy_=xy.evalf2double(eval_level(contextptr),newcontextptr)
si p xy.dbgprint() marchait on verrait la valeur de xy, on doit quand meme avair acces a la valeur de t, de count. Il y a peut-etre un probleme avec local_sto_double juste au-dessus, mais je ne vois pas pourquoi a priori.
xy_=xy.evalf2double(eval_level(contextptr),newcontextptr)
si p xy.dbgprint() marchait on verrait la valeur de xy, on doit quand meme avair acces a la valeur de t, de count. Il y a peut-etre un probleme avec local_sto_double juste au-dessus, mais je ne vois pas pourquoi a priori.
Re: plantage quand je bouge un point
Bonne nouvelle, enfin si on veut, j'ai reussi a reproduire le plantage, je suis en train de chercher...
Re: plantage quand je bouge un point
ou à un PC avec 2 core...parisse a écrit :le probleme c'est qu'il faudrait que j'ai acces a gdb...
comment vois-tu à quelle ligne a eu lieu le plantage ?Deja il y a un truc bizarre, c'est que les p f.dbgprint() ne t'affichent rien d'autre que void, il devrait t'afficher f aussi! Sinon, dans le f 15, le plantage apparait la
xy_=xy.evalf2double(eval_level(contextptr),newcontextptr)
hélas :si p xy.dbgprint() marchait on verrait la valeur de xy,
Code : Tout sélectionner
(gdb) f 15
#15 0x00007f6c69fecd3a in giac::plotparam (f=..., vars=..., attributs=...,
densityplot=true, function_xmin=0, function_xmax=1, function_ymin=-10,
function_ymax=10, function_tmin=0, function_tmax=1, function_tstep=0.01,
contextptr=0x7f6c5c287430) at plot.cc:6224
6224 xy_=xy.evalf2double(eval_level(contextptr),newcontextptr);
(gdb) p xy
$11 = {subtype = 0, type = 8, {val = 22285920,
_DOUBLE_val = 1.1010707457966353e-316, ptr_val = {{__ZINTptr = 0x1540e60,
__REALptr = 0x1540e60, __CPLXptr = 0x1540e60, __IDNTptr = 0x1540e60,
__SYMBptr = 0x1540e60, __MODptr = 0x1540e60, __EXTptr = 0x1540e60,
__FRACptr = 0x1540e60, __POLYptr = 0x1540e60, __VECTptr = 0x1540e60,
__SPOL1ptr = 0x1540e60, __STRNGptr = 0x1540e60, __FUNCptr = 0x1540e60,
__ROOTptr = 0x1540e60, __USERptr = 0x1540e60, __MAPptr = 0x1540e60,
__EQWptr = 0x1540e60, __GROBptr = 0x1540e60,
__POINTER_val = 0x1540e60}, ref_count = 0x1540e40}}}
(gdb) p xy.dbgprint()
$12 = void
je ne trouve pas ces variables... désoléon doit quand meme avair acces a la valeur de t, de count.
Il y a peut-etre un probleme avec local_sto_double juste au-dessus, mais je ne vois pas pourquoi a priori.
j'ai continué à me déplacer dans les lignes pour suivre jusqu'où la variable de type gen était défaillante :
Code : Tout sélectionner
(gdb) bt
#0 0x00007f9cd371e3c6 in ?? () from /lib/libc.so.6
#1 0x00007f9cd37207ee in malloc () from /lib/libc.so.6
#2 0x00007f9cd3f7764d in operator new(unsigned long) () from /usr/lib/libstdc++.so.6
#3 0x00007f9cd72ce8d2 in gen (this=0x7fff956d2920, s=...) at gen.cc:437
#4 0x00007f9cd72cdc79 in giac::is_inf (e=...) at gen.cc:183
#5 0x00007f9cd72cdcf6 in giac::is_inf (e=...) at gen.cc:185
#6 0x00007f9cd72c632b in giac::idnt_symb_int (b=...) at usual.cc:2484
#7 0x00007f9cd728beb9 in giac::_plus (args=..., contextptr=0x1a5e240) at usual.cc:2504
#8 0x00007f9cd726e3ca in giac::unary_function_eval::operator() (this=0x7f9cd76ce7e0, arg=..., context_ptr=0x1a5e240) at unary.h:143
#9 0x00007f9cd6f43676 in giac::symbolic::evalf (this=0x7f9cc80054a0, level=1, contextptr=0x1a5e240) at symbolic.cc:454
#10 0x00007f9cd72d9ee7 in giac::gen::in_evalf (this=0x7f9cc8005440, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1908
#11 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8005440, level=1, contextptr=0x1a5e240) at gen.cc:1781
#12 0x00007f9cd72d9c5a in giac::gen::in_evalf (this=0x7f9cc8005618, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1895
#13 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8005618, level=1, contextptr=0x1a5e240) at gen.cc:1781
#14 0x00007f9cd72d68ac in giac::evalf_VECT (v=..., subtype=0, level=1, contextptr=0x1a5e240) at gen.cc:1486
#15 0x00007f9cd72d9b5e in giac::gen::in_evalf (this=0x7f9cc8005658, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1891
#16 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8005658, level=1, contextptr=0x1a5e240) at gen.cc:1781
#17 0x00007f9cd6f43651 in giac::symbolic::evalf (this=0x7f9cc8005640, level=1, contextptr=0x1a5e240) at symbolic.cc:454
#18 0x00007f9cd72d9ee7 in giac::gen::in_evalf (this=0x7f9cc8004280, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1908
#19 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8004280, level=1, contextptr=0x1a5e240) at gen.cc:1781
#20 0x00007f9cd72d68ac in giac::evalf_VECT (v=..., subtype=0, level=1, contextptr=0x1a5e240) at gen.cc:1486
#21 0x00007f9cd72d9b5e in giac::gen::in_evalf (this=0x7f9cc8005c58, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1891
#22 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8005c58, level=1, contextptr=0x1a5e240) at gen.cc:1781
#23 0x00007f9cd6f43651 in giac::symbolic::evalf (this=0x7f9cc8005c40, level=1, contextptr=0x1a5e240) at symbolic.cc:454
#24 0x00007f9cd72d9ee7 in giac::gen::in_evalf (this=0x7f9cc8009820, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1908
#25 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8009820, level=1, contextptr=0x1a5e240) at gen.cc:1781
#26 0x00007f9cd72d68ac in giac::evalf_VECT (v=..., subtype=8, level=1, contextptr=0x1a5e240) at gen.cc:1486
#27 0x00007f9cd72d9b5e in giac::gen::in_evalf (this=0x7f9cc8003c40, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1891
#28 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8003c40, level=1, contextptr=0x1a5e240) at gen.cc:1781
#29 0x00007f9cd72d68ac in giac::evalf_VECT (v=..., subtype=5, level=1, contextptr=0x1a5e240) at gen.cc:1486
#30 0x00007f9cd72d9b5e in giac::gen::in_evalf (this=0x7f9cc8008da8, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1891
#31 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8008da8, level=1, contextptr=0x1a5e240) at gen.cc:1781
#32 0x00007f9cd6f434f4 in giac::symbolic::evalf (this=0x7f9cc8008d90, level=1, contextptr=0x1a5e240) at symbolic.cc:446
#33 0x00007f9cd72d9ee7 in giac::gen::in_evalf (this=0x7f9cc8005870, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1908
#34 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8005870, level=1, contextptr=0x1a5e240) at gen.cc:1781
#35 0x00007f9cd72d68ac in giac::evalf_VECT (v=..., subtype=8, level=1, contextptr=0x1a5e240) at gen.cc:1486
#36 0x00007f9cd72d9b5e in giac::gen::in_evalf (this=0x7f9cc8008688, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1891
#37 0x00007f9cd72d905c in giac::gen::evalf (this=0x7f9cc8008688, level=1, contextptr=0x1a5e240) at gen.cc:1781
#38 0x00007f9cd6f434f4 in giac::symbolic::evalf (this=0x7f9cc8008670, level=1, contextptr=0x1a5e240) at symbolic.cc:446
#39 0x00007f9cd72d9ee7 in giac::gen::in_evalf (this=0x7fff956d73a0, level=1, evaled=..., contextptr=0x1a5e240) at gen.cc:1908
#40 0x00007f9cd72d905c in giac::gen::evalf (this=0x7fff956d73a0, level=1, contextptr=0x1a5e240) at gen.cc:1781
#41 0x00007f9cd72d8da3 in giac::evalf (e=..., level=1, contextptr=0x1a5e240) at gen.cc:1748
#42 0x00007f9cd7143f85 in giac::nearest_point (v=..., p=..., eps=0.16910154520556306, contextptr=0x1a5e240) at plot.cc:4536
#43 0x00007f9cd781290c in xcas::Graph2d::geometry_round (this=0x1a8cb30, x=2.5712999999999999, y=-1.905, z=0,
eps=0.16910154520556306, tmp=..., contextptr=0x1a5e240) at Graph.cc:3439
#44 0x00007f9cd78125b9 in xcas::Graph2d3d::geometry_round (this=0x1a8cb30, x=2.5712999999999999, y=-1.905, z=0,
eps=0.16910154520556306, original=..., pos=@0x7fff956d878c) at Graph.cc:3415
#45 0x00007f9cd780d9d5 in xcas::Graph2d3d::geo_handle (this=0x1a8cb30, event=5) at Graph.cc:3044
#46 0x00007f9cd7814003 in xcas::Geo2d::in_handle (this=0x1a8cb30, event=5) at Graph.cc:3600
#47 0x00007f9cd7811b2f in xcas::Graph2d3d::handle (this=0x1a8cb30, event=5) at Graph.cc:3311
#48 0x00007f9cd50da4ea in ?? () from /usr/lib/libfltk.so.1.1
#49 0x00007f9cd50db1ea in Fl::handle(int, Fl_Window*) () from /usr/lib/libfltk.so.1.1
#50 0x00007f9cd5122df3 in ?? () from /usr/lib/libfltk.so.1.1
#51 0x00007f9cd512362b in fl_wait(double) () from /usr/lib/libfltk.so.1.1
#52 0x00007f9cd50dc06d in Fl::wait(double) () from /usr/lib/libfltk.so.1.1
#53 0x00007f9cd50dc14d in Fl::wait() () from /usr/lib/libfltk.so.1.1
#54 0x000000000042ae2f in Xcas_run (argc=1, argv=0x7fff956d8ea8) at hist.cxx:4867
#55 0x000000000042afb3 in main (argc=1, argv=0x7fff956d8ea8) at hist.cxx:4914
(gdb) f 44
#44 0x00007f9cd78125b9 in xcas::Graph2d3d::geometry_round (this=0x1a8cb30, x=2.5712999999999999, y=-1.905, z=0,
eps=0.16910154520556306, original=..., pos=@0x7fff956d878c) at Graph.cc:3415
3415 geometry_round(x,y,z,eps,tmp,contextptr);
(gdb) p tmp
$5 = {subtype = 3, type = 4, {val = 27928088, _DOUBLE_val = 1.3798308834831168e-316, ptr_val = {{__ZINTptr = 0x1aa2618,
__REALptr = 0x1aa2618, __CPLXptr = 0x1aa2618, __IDNTptr = 0x1aa2618, __SYMBptr = 0x1aa2618, __MODptr = 0x1aa2618,
__EXTptr = 0x1aa2618, __FRACptr = 0x1aa2618, __POLYptr = 0x1aa2618, __VECTptr = 0x1aa2618, __SPOL1ptr = 0x1aa2618,
__STRNGptr = 0x1aa2618, __FUNCptr = 0x1aa2618, __ROOTptr = 0x1aa2618, __USERptr = 0x1aa2618, __MAPptr = 0x1aa2618,
__EQWptr = 0x1aa2618, __GROBptr = 0x1aa2618, __POINTER_val = 0x1aa2618}, ref_count = 0x1aa61b0}}}
(gdb) p this
$6 = (class xcas::Graph2d3d * const) 0x1a8cb30
(gdb) p original
$7 = (class giac::gen &) @0x7fff956d8540: {subtype = 0, type = 0, {val = 0, _DOUBLE_val = 0, ptr_val = {{__ZINTptr = 0x0,
__REALptr = 0x0, __CPLXptr = 0x0, __IDNTptr = 0x0, __SYMBptr = 0x0, __MODptr = 0x0, __EXTptr = 0x0, __FRACptr = 0x0,
__POLYptr = 0x0, __VECTptr = 0x0, __SPOL1ptr = 0x0, __STRNGptr = 0x0, __FUNCptr = 0x0, __ROOTptr = 0x0, __USERptr = 0x0,
__MAPptr = 0x0, __EQWptr = 0x0, __GROBptr = 0x0, __POINTER_val = 0x0}, ref_count = 0x32310000019d3c90}}}
(gdb) p original.dbgprint()
$17 = void
Code : Tout sélectionner
(gdb) f 45
#45 0x00007f9cd780d9d5 in xcas::Graph2d3d::geo_handle (this=0x1a8cb30, event=5) at Graph.cc:3044
3044 tmp=geometry_round(newx,newy,newz,eps,tmp2,pos);
(gdb) p tmp
$8 = {subtype = 0, type = 0, {val = 0, _DOUBLE_val = 0, ptr_val = {{__ZINTptr = 0x0, __REALptr = 0x0, __CPLXptr = 0x0,
__IDNTptr = 0x0, __SYMBptr = 0x0, __MODptr = 0x0, __EXTptr = 0x0, __FRACptr = 0x0, __POLYptr = 0x0, __VECTptr = 0x0,
__SPOL1ptr = 0x0, __STRNGptr = 0x0, __FUNCptr = 0x0, __ROOTptr = 0x0, __USERptr = 0x0, __MAPptr = 0x0, __EQWptr = 0x0,
__GROBptr = 0x0, __POINTER_val = 0x0}, ref_count = 0x1980570}}}
(gdb) p newx
$9 = 2.5712999999999999
(gdb) p newy
$10 = -1.905
(gdb) p newz
$11 = 0
(gdb) p eps
$12 = 0.16910154520556306
(gdb) p tmp2
$13 = {subtype = 0, type = 0, {val = 0, _DOUBLE_val = 0, ptr_val = {{__ZINTptr = 0x0, __REALptr = 0x0, __CPLXptr = 0x0,
__IDNTptr = 0x0, __SYMBptr = 0x0, __MODptr = 0x0, __EXTptr = 0x0, __FRACptr = 0x0, __POLYptr = 0x0, __VECTptr = 0x0,
__SPOL1ptr = 0x0, __STRNGptr = 0x0, __FUNCptr = 0x0, __ROOTptr = 0x0, __USERptr = 0x0, __MAPptr = 0x0, __EQWptr = 0x0,
__GROBptr = 0x0, __POINTER_val = 0x0}, ref_count = 0x32310000019d3c90}}}
(gdb) p pos
$14 = 392
Re: plantage quand je bouge un point
ok super, c'est plus simple comme ça !parisse a écrit :Bonne nouvelle, enfin si on veut, j'ai reussi a reproduire le plantage, je suis en train de chercher...
Re: plantage quand je bouge un point
bon, j'ai peut-etre trouvé, il s'agirait de modifier dans Graph.cc, ligne 3415
L'explication serait que quand on bouge la souris, xcas essaie de déterminer la position par rapport aux objets graphiques, qui sont en même temps évalués. Mais le patch n'est pas béton, car la modif peut intervenir juste après, il faut que je réflechisse encore.
Code : Tout sélectionner
// find nearest point of x+i*y, returns position in history and either
// a numeric value or the point name
gen Graph2d3d::geometry_round(double x,double y,double z,double eps,gen & original,int & pos) {
if (!hp)
return undef;
context * contextptr=hp?hp->contextptr:get_context(this);
gen tmp;
pos=-1;
if (is_context_busy(contextptr))
return undef;
geometry_round(x,y,z,eps,tmp,contextptr);
if (selected.empty())
return tmp;
pos=findfirstpoint(selection2vecteur(selected));
...
Re: plantage quand je bouge un point
bon, ce serait plutot dans Graph.cc
if (block_signal) au lieu de if(is_context_busy(contextptr))
mais il faut modifier dans Xcas1.cc la fonction Xcas_eval_callback, au début
à la fin
je referais un tarball demain.
if (block_signal) au lieu de if(is_context_busy(contextptr))
mais il faut modifier dans Xcas1.cc la fonction Xcas_eval_callback, au début
Code : Tout sélectionner
void Xcas_eval_callback(const giac::gen & evaled_g,void * param){
Fl_Widget * wid=static_cast<Fl_Widget *>(param);
if (!wid)
return;
int hp_pos;
History_Pack * hp = get_history_pack(wid,hp_pos);
context * contextptr = hp?hp->contextptr:0;
Fl_Group * gr = wid->parent();
if (!hp || !gr)
return;
bool block=block_signal;
block_signal=true;
Code : Tout sélectionner
...
else { // res==0 no output
if (Fl_Input_ * i=dynamic_cast<Fl_Input_ * >(wid))
i->value("No_output");
hp->resize();
}
block_signal=block;
}
Re: plantage quand je bouge un point
Bonsoir,
j'ai fait les modifications et ensuite :
make clean;make
sudo make install
sudo ldconfig
j'ai encore le plantage mais je peux déplacer le point plus longtemps (courbe de bézier avec 3 points). Avant c'était quasi instantanné. Là c'est au bout de 2 secondes...
voilà le message dans la console (pas le temps de déboguer ce soir...)
Dis moi si tu veux que je teste d'autres choses ou que je débogue demain...
A+
j'ai fait les modifications et ensuite :
make clean;make
sudo make install
sudo ldconfig
j'ai encore le plantage mais je peux déplacer le point plus longtemps (courbe de bézier avec 3 points). Avant c'était quasi instantanné. Là c'est au bout de 2 secondes...
voilà le message dans la console (pas le temps de déboguer ce soir...)
Code : Tout sélectionner
// User configuration done
*** glibc detected *** xcas: double free or corruption (!prev): 0x0000000000e3afa0 ***
======= Backtrace: =========
/lib/libc.so.6[0x7f8786fcbdd6]
/lib/libc.so.6(cfree+0x6c)[0x7f8786fd070c]
xcas(_ZN9__gnu_cxx13new_allocatorIN4giac3genEE10deallocateEPS2_m+0x20)[0x42f21a]
xcas(_ZNSt12_Vector_baseIN4giac3genESaIS1_EE13_M_deallocateEPS1_m+0x32)[0x42e1fa]
xcas(_ZNSt6vectorIN4giac3genESaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_+0x27b)[0x42e657]
xcas(_ZNSt6vectorIN4giac3genESaIS1_EE9push_backERKS1_+0x78)[0x42d87e]
/usr/local/lib/libgiac.so.0(_ZNK4giac8symbolic5evalfEiPKNS_7contextE+0xb1)[0x7f878a7f2a39]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen8in_evalfEiRS0_PKNS_7contextE+0xb23)[0x7f878ab89ee7]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen5evalfEiPKNS_7contextE+0x176)[0x7f878ab8905c]
/usr/local/lib/libgiac.so.0(_ZN4giac10evalf_VECTERKNS_15dbgprint_vectorINS_3genEEEiiPKNS_7contextE+0xb8)[0x7f878ab868ac]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen8in_evalfEiRS0_PKNS_7contextE+0x79a)[0x7f878ab89b5e]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen5evalfEiPKNS_7contextE+0x176)[0x7f878ab8905c]
/usr/local/lib/libgiac.so.0(_ZNK4giac8symbolic5evalfEiPKNS_7contextE+0xcc9)[0x7f878a7f3651]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen8in_evalfEiRS0_PKNS_7contextE+0xb23)[0x7f878ab89ee7]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen5evalfEiPKNS_7contextE+0x176)[0x7f878ab8905c]
/usr/local/lib/libgiac.so.0(_ZN4giac10evalf_VECTERKNS_15dbgprint_vectorINS_3genEEEiiPKNS_7contextE+0xb8)[0x7f878ab868ac]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen8in_evalfEiRS0_PKNS_7contextE+0x79a)[0x7f878ab89b5e]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen5evalfEiPKNS_7contextE+0x176)[0x7f878ab8905c]
/usr/local/lib/libgiac.so.0(_ZNK4giac8symbolic5evalfEiPKNS_7contextE+0xcc9)[0x7f878a7f3651]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen8in_evalfEiRS0_PKNS_7contextE+0xb23)[0x7f878ab89ee7]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen5evalfEiPKNS_7contextE+0x176)[0x7f878ab8905c]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen12evalf2doubleEiPKNS_7contextE+0x30)[0x7f878ab8a916]
/usr/local/lib/libgiac.so.0(_ZN4giac9plotparamERKNS_3genES2_RKNS_15dbgprint_vectorIS0_EEbdddddddPKNS_7contextE+0x551)[0x7f878aa0fd3a]
/usr/local/lib/libgiac.so.0(_ZN4giac14paramplotparamERKNS_3genEbPKNS_7contextE+0x20a0)[0x7f878aa12da0]
/usr/local/lib/libgiac.so.0(_ZN4giac10_plotparamERKNS_3genEPKNS_7contextE+0x2f)[0x7f878aa12ecc]
/usr/local/lib/libgiac.so.0(_ZNK4giac19unary_function_evalclERKNS_3genEPKNS_7contextE+0x34)[0x7f878ab1e3ca]
/usr/local/lib/libgiac.so.0(_ZNK4giac18unary_function_ptrclERKNS_3genEPKNS_7contextE+0x3d)[0x7f878ab192a5]
/usr/local/lib/libgiac.so.0(_ZNK4giac8symbolic4evalEiPKNS_7contextE+0xec5)[0x7f878a7f1b21]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen7in_evalEiRS0_PKNS_7contextE+0x6c0)[0x7f878ab881ba]
/usr/local/lib/libgiac.so.0(_ZNK4giac3gen4evalEiPKNS_7contextE+0x176)[0x7f878ab87a92]
/usr/local/lib/libgiac.so.0(_ZN4giac11protectevalERKNS_3genEiPKNS_7contextE+0xe3)[0x7f878aad2629]
/usr/local/lib/libgiac.so.0(_ZN4giac14in_thread_evalEPv+0xfa)[0x7f878a976c39]
/lib/libpthread.so.0[0x7f8789db5a04]
/lib/libc.so.6(clone+0x6d)[0x7f87870357bd]
======= Memory map: ========
00400000-0043c000 r-xp 00000000 08:01 17064033 /usr/local/bin/xcas
0063b000-0063c000 r--p 0003b000 08:01 17064033 /usr/local/bin/xcas
0063c000-00640000 rw-p 0003c000 08:01 17064033 /usr/local/bin/xcas
00640000-00644000 rw-p 00000000 00:00 0
00bc7000-00f8b000 rw-p 00000000 00:00 0 [heap]
4018c000-4018e000 rwxp 00000000 00:0f 1692 /dev/zero
7f8774000000-7f8774021000 rw-p 00000000 00:00 0
7f8774021000-7f8778000000 ---p 00000000 00:00 0
7f877c000000-7f877c021000 rw-p 00000000 00:00 0
7f877c021000-7f8780000000 ---p 00000000 00:00 0
7f8781dfc000-7f8781dfd000 ---p 00000000 00:00 0
7f8781dfd000-7f87825fd000 rw-p 00000000 00:00 0
7f87825fd000-7f8782647000 r--p 00000000 08:01 16498909 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf
7f8782647000-7f8782696000 r--p 00000000 08:01 16498908 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
7f8782696000-7f8782722000 r--p 00000000 08:01 16498907 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
7f8782722000-7f8782727000 r-xp 00000000 08:01 16347407 /usr/lib/libXfixes.so.3.1.0
7f8782727000-7f8782926000 ---p 00005000 08:01 16347407 /usr/lib/libXfixes.so.3.1.0
7f8782926000-7f8782927000 r--p 00004000 08:01 16347407 /usr/lib/libXfixes.so.3.1.0
7f8782927000-7f8782928000 rw-p 00005000 08:01 16347407 /usr/lib/libXfixes.so.3.1.0
7f8782928000-7f8782931000 r-xp 00000000 08:01 16347410 /usr/lib/libXcursor.so.1.0.2
7f8782931000-7f8782b30000 ---p 00009000 08:01 16347410 /usr/lib/libXcursor.so.1.0.2
7f8782b30000-7f8782b31000 r--p 00008000 08:01 16347410 /usr/lib/libXcursor.so.1.0.2
7f8782b31000-7f8782b32000 rw-p 00009000 08:01 16347410 /usr/lib/libXcursor.so.1.0.2
7f8782b51000-7f8782be9000 r--p 00000000 08:01 16498896 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
7f8782be9000-7f8782bf5000 r-xp 00000000 08:01 51561795 /lib/libnss_files-2.10.1.so
7f8782bf5000-7f8782df4000 ---p 0000c000 08:01 51561795 /lib/libnss_files-2.10.1.so
7f8782df4000-7f8782df5000 r--p 0000b000 08:01 51561795 /lib/libnss_files-2.10.1.so
7f8782df5000-7f8782df6000 rw-p 0000c000 08:01 51561795 /lib/libnss_files-2.10.1.so
7f8782df6000-7f8782e00000 r-xp 00000000 08:01 51561797 /lib/libnss_nis-2.10.1.so
7f8782e00000-7f8782fff000 ---p 0000a000 08:01 51561797 /lib/libnss_nis-2.10.1.so
7f8782fff000-7f8783000000 r--p 00009000 08:01 51561797 /lib/libnss_nis-2.10.1.so
7f8783000000-7f8783001000 rw-p 0000a000 08:01 51561797 /lib/libnss_nis-2.10.1.so
7f8783001000-7f8783017000 r-xp 00000000 08:01 51561792 /lib/libnsl-2.10.1.so
7f8783017000-7f8783217000 ---p 00016000 08:01 51561792 /lib/libnsl-2.10.1.so
7f8783217000-7f8783218000 r--p 00016000 08:01 51561792 /lib/libnsl-2.10.1.so
7f8783218000-7f8783219000 rw-p 00017000 08:01 51561792 /lib/libnsl-2.10.1.so
7f8783219000-7f878321b000 rw-p 00000000 00:00 0
7f878321b000-7f8783222000 r-xp 00000000 08:01 51561793 /lib/libnss_compat-2.10.1.so
7f8783222000-7f8783422000 ---p 00007000 08:01 51561793 /lib/libnss_compat-2.10.1.so
7f8783422000-7f8783423000 r--p 00007000 08:01 51561793 /lib/libnss_compat-2.10.1.soAbandon
A+
Re: plantage quand je bouge un point
Il faut peut-etre désactiver la méthode de handle pendant tout le Xcas_eval_callback, je regaderai demain d'autres race condition potentielles.
Re: plantage quand je bouge un point
Bon, pas encore vu d'autres races condition 
J'ai mis les 2 tests block_signal et is_context_busy mais je pense que ca risque encore bien de planter chez toi (mais ca ne plante plus chez moi)! Tu peux essayer de recompiler le source que j'ai mis a jour, on verra ou ca plante...

J'ai mis les 2 tests block_signal et is_context_busy mais je pense que ca risque encore bien de planter chez toi (mais ca ne plante plus chez moi)! Tu peux essayer de recompiler le source que j'ai mis a jour, on verra ou ca plante...
Re: plantage quand je bouge un point
ok, je prends la version 0.9.0 ou le code "frozen" ?parisse a écrit :Bon, pas encore vu d'autres races condition
J'ai mis les 2 tests block_signal et is_context_busy mais je pense que ca risque encore bien de planter chez toi (mais ca ne plante plus chez moi)! Tu peux essayer de recompiler le source que j'ai mis a jour, on verra ou ca plante...
Re: plantage quand je bouge un point
je te conseille plutot la 0.8.4, alias frozen pour du stable.