Hi, Since some time I get the following segmentation fault in an application which used to work fine until recently.
I made a backtrace but couldn't find the reason for the segmentaion fault until now. In the hope that somebody might have encountered a similar problem or does understand the backtrace better than me and can explain it I posted the backtrace here... At the end of the backtrace I appended some more context concerning the involved code. Thanks for your help :) Dietrich Here comes the backtrace: ---- Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb046ab90 (LWP 9854)] threadstate_getframe (self=0xb7e8a889) at ../Python/pystate.c:154 154 ../Python/pystate.c: No such file or directory. in ../Python/pystate.c (gdb) bt full #0 threadstate_getframe (self=0xb7e8a889) at ../Python/pystate.c:154 No locals. #1 0xb7e8a897 in PyEval_GetGlobals () at ../Python/ceval.c:3340 current_frame = <value optimized out> #2 0xb7eaeb67 in PyImport_Import (module_name=0xb7119480) at ../Python/import.c:2400 globals = <value optimized out> import = <value optimized out> builtins = <value optimized out> r = <value optimized out> silly_list = (PyObject *) 0xb738fb0c builtins_str = (PyObject *) 0xb7391c50 import_str = (PyObject *) 0xb7391fc0 #3 0xb7eaede5 in PyImport_ImportModule (name=0x901504b "sys") at ../Python/import.c:1903 pname = (PyObject *) 0xb7119480 result = (PyObject *) 0x0 #4 0x08996c9f in py_stdouterr_buffer_new () at source/blender/commandport/blender/src/py_stdouterr_buffer.c:75 buffer = (py_stdouterr_buffer) 0x94fd428 func_StringIO = (PyObject *) 0x9152a48 args_StringIO = (PyObject *) 0x0 #5 0x089967e1 in bcp_blender_handler_new () at source/blender/commandport/blender/src/bcp_blender.c:130 handler = (bcp_blender_handler) 0x9810420 #6 0x08998db3 in bcp_handle_client (client_socket=8) at source/blender/commandport/blender/src/bcp_handle_client.c:73 debug = 0 debug3 = 0 debug4 = 0 message_handler = (message_handler) 0x97eba10 blender_handler = (bcp_blender_handler) 0x0 command = 0x0 result = 0x9152a48 "[EMAIL PROTECTED]@@[EMAIL PROTECTED] \"[EMAIL PROTECTED]@[EMAIL PROTECTED] [EMAIL PROTECTED]@[EMAIL PROTECTED] \b\"[EMAIL PROTECTED]@w# [EMAIL PROTECTED]" package_number = -1216545219 #7 0x08998d60 in bcp_client_thread (args=0x0) at source/blender/commandport/blender/src/bcp_server.c:164 targs = (struct bcp_client_thread_args *) 0x0 client_socket = 8 client_thread = 2957421456 #8 0xb76b04fb in start_thread () from /lib/i686/cmov/libpthread.so.0 No symbol table info available. #9 0xb77c2d7e in clone () from /lib/i686/cmov/libc.so.6 No symbol table info available. (gdb) q The program is running. Exit anyway? (y or n) y --- and here some informations about its context: Python-2.4.4/Python/ceval.c line 3340: PyFrameObject *current_frame = PyEval_GetFrame(); context: --- PyObject * PyEval_GetGlobals(void) { PyFrameObject *current_frame = PyEval_GetFrame(); if (current_frame == NULL) return NULL; else return current_frame->f_globals; } --- Python-2.4.4/Python/pystate.c lign 154: { context: --- /* Default implementation for _PyThreadState_GetFrame */ static struct _frame * threadstate_getframe(PyThreadState *self) { return self->frame; } --- Python-2.4.4/Python/import.c lign 2400: globals = PyEval_GetGlobals(); context: --- PyObject * PyImport_Import(PyObject *module_name) { ... /* Get the builtins from current globals */ globals = PyEval_GetGlobals(); if (globals != NULL) { Py_INCREF(globals); builtins = PyObject_GetItem(globals, builtins_str); if (builtins == NULL) goto err; } ... } --- Python-2.4.4/Python/import.c lign 1903: result = PyImport_Import(pname); context: --- PyObject * PyImport_ImportModule(char *name) { PyObject *pname; PyObject *result; pname = PyString_FromString(name); if (pname == NULL) return NULL; result = PyImport_Import(pname); Py_DECREF(pname); return result; } --- source/blender/commandport/blender/src/py_stdouterr_buffer.c lign 75: buffer->mod_sys = PyImport_ImportModule("sys"); context: --- /** Make a new python io buffer. */ py_stdouterr_buffer py_stdouterr_buffer_new() { py_stdouterr_buffer buffer; buffer = (py_stdouterr_buffer) malloc(sizeof(py_stdouterr_buffer_struct)); if (buffer == NULL) { fprintf(stderr, "Couldn't allocate memory for new py_stdouterr_buffer! \n"); exit(ERROR_MEMORY); } buffer->mod_sys = PyImport_ImportModule("sys"); buffer->mod_cStringIO = PyImport_ImportModule("cStringIO"); /* store stdout and stderr */ buffer->stdout_obj = PyObject_GetAttrString(buffer->mod_sys, "stdout"); buffer->stderr_obj = PyObject_GetAttrString(buffer->mod_sys, "stderr"); /* make new string buffer for stdout and stderr */ PyObject *func_StringIO, *args_StringIO; func_StringIO = PyObject_GetAttrString(buffer->mod_cStringIO, "StringIO"); args_StringIO = Py_BuildValue("()"); buffer->outbuf_obj = PyEval_CallObject(func_StringIO, args_StringIO); buffer->errbuf_obj = PyEval_CallObject(func_StringIO, args_StringIO); Py_DECREF(args_StringIO); Py_DECREF(func_StringIO); return buffer; } --- -- http://mail.python.org/mailman/listinfo/python-list