Embedding: How to set globals for PyObject_Call
Michael Hudson
mwh at python.net
Fri Feb 22 05:52:43 EST 2002
More information about the Python-list mailing list
Fri Feb 22 05:52:43 EST 2002
- Previous message (by thread): Embedding: How to set globals for PyObject_Call
- Next message (by thread): Embedding: How to set globals for PyObject_Call
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
xscottgjunk at yahoo.com (Scott Gilbert) writes: > Michael Hudson <mwh at python.net> wrote: > > xscottgjunk at yahoo.com (Scott Gilbert) writes: > > > > > // This one breaks > > > Var g = VarEval("globals"); > > > g(); // This causes a segfault > > > > Do we get to see the backtrace? > > > > - For "globals", it segfaults in builtin_globals(...) where it tries > to Py_INCREF the null result from PyEval_GetGlobals(). The dbx stack > trace is below if you really want it. :-) > > - For "locals", it segfaults when trying to Py_INCREF the null return > result from PyEval_GetLocals(). Similar stack trace as below, but > this is on line 1104 of bltinmodule.c > > - For "vars", it sets up a Python error of "no locals!?" on line 1992 > of bltinmodule.c > > - Finally for "dir", PyObject_Dir [object.c, 2085] is called from > builtin_dir [bltinmodule.c, 1992] and returns a null, but doesn't > setup the Python error, so up the call stack PyObject_Call sets up a > system error of "NULL result without error in PyObject_Call" > [abstract.c, 2034]. Oh, I see what's going on. Another question: what would you expect locals() to return? > Many other functions work without a hitch. (For instance, "list" is a > builtin that can take no args, and I correctly get a new list object > when I do my equivalent of apply() on that.) Yeah, but they don't access the frame of the calling (presumed Python) function. > Well, I hope this is sufficient info if you view this as enough of a > problem to fix it. Thanks for your interest. It's probable that Python shouldn't core in these circumstances, at least. Cheers, M. -- There are two kinds of large software systems: those that evolved from small systems and those that don't work. -- Seen on slashdot.org, then quoted by amk
- Previous message (by thread): Embedding: How to set globals for PyObject_Call
- Next message (by thread): Embedding: How to set globals for PyObject_Call
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list