Help in solving a segfault problem?

Nicolas SCHEFFER <scheffer.nicolas@...287...> writes:

I didn't get much reply on this issue, so I'm just trying to resurrect
the question.

Probably not many devs using Solaris, so no-one has been able to
reproduce this.

#12 0xfffffd7ff4a22fd8 in py_to_agg_transformation_matrix
(obj=0x774380, errors=<value optimized out>) at
src/agg_py_transforms.cpp:22
#13 0xfffffd7ff4a32e7c in _path_module::update_path_extents
(this=<value optimized out>, args=...) at src/path.cpp:380

So it's in transforms-related code, but we can't see the locals. First
I'd try to recompile without optimizations and (hoping it still crashes)
inspect the local variables in these frames in gdb. Or maybe make the
functions print out their arguments and any other relevant locals.

···

--
Jouni K. Sepp�nen
http://www.iki.fi/jks

Thanks much for the reply!
I'll try your advice as soon as I can.

BTW, I don't think this is a Solaris-related problem.
If you look at the pointers in my original post, the same error can
happen on other arch (I confess it can be for other reasons though).

-n

···

On Sun, Mar 13, 2011 at 1:03 PM, Jouni K. Seppänen <jks@...397...> wrote:

Nicolas SCHEFFER <scheffer.nicolas@...287...> writes:

I didn't get much reply on this issue, so I'm just trying to resurrect
the question.

Probably not many devs using Solaris, so no-one has been able to
reproduce this.

#12 0xfffffd7ff4a22fd8 in py_to_agg_transformation_matrix
(obj=0x774380, errors=<value optimized out>) at
src/agg_py_transforms.cpp:22
#13 0xfffffd7ff4a32e7c in _path_module::update_path_extents
(this=<value optimized out>, args=...) at src/path.cpp:380

So it's in transforms-related code, but we can't see the locals. First
I'd try to recompile without optimizations and (hoping it still crashes)
inspect the local variables in these frames in gdb. Or maybe make the
functions print out their arguments and any other relevant locals.

--
Jouni K. Seppänen
http://www.iki.fi/jks

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Hi all,
So I tried what was advised to me.
python -c 'import pylab; pylab.plot([4]);'
terminate called after throwing an instance of 'std::exception'
terminate called recursively
Abort

which happens here:
     14 agg::trans_affine
     15 py_to_agg_transformation_matrix(PyObject* obj, bool errors = true)
     16 {
     17 PyArrayObject* matrix = NULL;
     18
     19 try
     20 {
     21 if (obj == Py_None)
     22 throw std::exception();

Since I compiled w/o optimization flags I have this now:
#11 0xfffffd7ff46cf0b6 in __cxxabiv1::__cxa_throw (obj=<value
optimized out>, tinfo=<value optimized out>,
    dest=<value optimized out>) at
../../../../../libstdc++-v3/libsupc++/eh_throw.cc:83
#12 0xfffffd7ff4a3c708 in py_to_agg_transformation_matrix
(obj=0x774380, errors=false) at src/agg_py_transforms.cpp:22
#13 0xfffffd7ff4a4132e in _path_module::update_path_extents
(this=0x144e230, args=...) at src/path.cpp:380
#14 0xfffffd7ff4a537ce in
Py::ExtensionModule<_path_module>::invoke_method_varargs
(this=0x144e230, method_def=0x14009b0,
    args=...) at ./CXX/Python2/ExtensionModule.hxx:184
#15 0xfffffd7ff4a389df in Py::method_varargs_call_handler
(_self_and_name_tuple=0x1244170, _args=0x1977fb0)
    at CXX/Python2/cxx_extensions.cxx:1714
#16 0x00000000004a6071 in call_function (f=0x201e980, throwflag=<value
optimized out>)
    at /usr/local/src/lang/Python-2.7.1/Python/ceval.c:4012
#17 PyEval_EvalFrameEx (f=0x201e980, throwflag=<value optimized out>)
    at /usr/local/src/lang/Python-2.7.1/Python/ceval.c:2665
#18 0x00000000004a79c1 in PyEval_EvalCodeEx (co=0x123a130,
globals=<value optimized out>, locals=<value optimized out>,
    args=0x201eb20, argcount=<value optimized out>, kws=0x3,
kwcount=2, defs=0x12467e8, defcount=3, closure=0x0)
    at /usr/local/src/lang/Python-2.7.1/Python/ceval.c:3252

The function has now obj=0x774380 as an argument instead of <value
optimized out>

So what is generating a PyNull object is in src/path.cpp:380
but this file doesn't exist! If I look in _path.cpp though this is
where it fails:
    360 ::get_path_extents(path, trans, &extents_data[0],
&extents_data[1],
    361 &extents_data[2], &extents_data[3],
&xm, &ym);

I have no idea how to debug this since it seems the problem are in the
CXX extensions (calls to ceval.c)

Any idea how I can narrow down the problem?

Thanks!

···

On Sun, Mar 13, 2011 at 6:18 PM, Nicolas SCHEFFER <scheffer.nicolas@...287...> wrote:

Thanks much for the reply!
I'll try your advice as soon as I can.

BTW, I don't think this is a Solaris-related problem.
If you look at the pointers in my original post, the same error can
happen on other arch (I confess it can be for other reasons though).

-n

On Sun, Mar 13, 2011 at 1:03 PM, Jouni K. Seppänen <jks@...397...> wrote:

Nicolas SCHEFFER <scheffer.nicolas@...287...> writes:

I didn't get much reply on this issue, so I'm just trying to resurrect
the question.

Probably not many devs using Solaris, so no-one has been able to
reproduce this.

#12 0xfffffd7ff4a22fd8 in py_to_agg_transformation_matrix
(obj=0x774380, errors=<value optimized out>) at
src/agg_py_transforms.cpp:22
#13 0xfffffd7ff4a32e7c in _path_module::update_path_extents
(this=<value optimized out>, args=...) at src/path.cpp:380

So it's in transforms-related code, but we can't see the locals. First
I'd try to recompile without optimizations and (hoping it still crashes)
inspect the local variables in these frames in gdb. Or maybe make the
functions print out their arguments and any other relevant locals.

--
Jouni K. Seppänen
http://www.iki.fi/jks

------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users