Supporting #line directives
Michael Hudson
mwh21 at cam.ac.uk
Mon Mar 6 12:20:01 EST 2000
Andrew Csillag <drew.csillag at starmedia.net> writes:
> I don't really want a debugger for it (although it would be neat), I
> just want to make it so that I don't have to do so much work in order to
> render a traceback that shows source lines in the original source file.
> Python's bytecode already has a SET_LINENO instruction, if there were a
> SET_FILENAME instruction, that would handle it nicely (of cource ceval.c
> would probably require a bit of modification, but that's just a "simple
> matter of programming" <0.3 wink>).
>
> Unfortunately, introspection doesn't help a bit here. With
> introspection I can find out where functions and classes are defined in
> python source, but not in the original (non-python) source.
>>> def f():
... raise "hiya!"
...
>>> from bytecodehacks import common
>>> import new
>>> f=new.function(common.copy_code_with_changes(
... f.func_code,filename="whatever.c"),f.func_globals)
>>> f()
Traceback (innermost last):
File "<stdin>", line 1, in ?
File "whatever.c", line 2, in f
hiya!
>>>
Is this helping?
Cheers,
M.
--
very few people approach me in real life and insist on proving they are
drooling idiots. -- Erik Naggum, comp.lang.lisp
More information about the Python-list
mailing list