Hi, 2011/5/2 Roger Binns <rog...@rogerbinns.com>: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > >> - Some trace and Traceback management functions that are not even >> documented (but used by Cython :-)) > > I use them too. One of the problems with the standard documented C api is > that tracebacks do not include any methods implemented in C. For example if > a Python method calls a C method which calls a Python method which errors > then the traceback won't include the C code. This is very confusing if you > don't know why the C code called a Python method. > > I show this in the doc for my project: > > http://apidoc.apsw.googlecode.com/hg/exceptions.html#augmented-stack-traces > > As the doc shows I end up adding in synthetic stack frames so you can > clearly see the C code. I also augment the synthetic frames with local > variables that can be introspected to find out what is going on. The very > bottom of the page shows what a difference that makes. > > You can see the C code to do it here: > > http://code.google.com/p/apsw/source/browse/src/traceback.c > > Note use of functions like PyThreadState_Get() and PyTraceback_here. As > long as the signature of AddTraceBackHere can remain the same then I don't > care what the body inside is for pypy.
Yes, we've implemented PyTraceback_here so that it works exactly for this usage. Can you check whether pypy does the right thing for you as well? -- Amaury Forgeot d'Arc _______________________________________________ pypy-dev@codespeak.net http://codespeak.net/mailman/listinfo/pypy-dev