(original) (raw)
Here is a working prototype for CPython to record all function call/return using LTTng-UST, a fast tracer.
However, there are few issues and questions:
- I was not able to get PyTrace\_EXCEPTION using "raise" or other error conditions. How can we trigger this event in Python code (PyTrace\_C\_EXCEPTION works)?
- How could be the best way to get the full name of an object (such as package, module, class and function). Maybe it's too Java-ish, and it is better to record file/lineno instead?
- On the C-API side: I did a horrible and silly function show\_type() to run every Py\*\_Check() to determine the type of a PyObject \*. What would be the sane way to do that?
Your comments are very valuable. Thanks!
Francis