On Wednesday, November 6, 2013 1:56:12 AM UTC-8, Tobias Weich wrote:
>
> Hi,
> If I load some sage script and try to debug it with trace I am unable to 
> see the code which I'm debugging
>
> load('~/test.sage')
> trace('example_func()')
>
> yields only to an output like:
>
> ipdb> s
> --Call--
> > <string>(2)example_func()
>
> ipdb> s
> > <string>(3)example_func()
>
>
> which is not very helpful. If I however attach the file everything works 
> fine. As I want to use my scripts in the notebook and only debug on the 
> command line I have the impression that I need "load" in my scripts. Is 
> there a possibility to debug in loaded files? 
>

When python interprets "code" it compiles it into an internal format, 
together with some information on where to find the source (i.e., the file 
the code was obtained from). When you enter code interactively there isn't 
a file that can be referred to, so it's registered as coming from 
"<string>". You don't get source from there.

Sage code isn't python, so there is a translation step involved in loading 
`test.sage`. As far as python is concerned, it is getting code from an 
ephemeral source, just as when code is entered interactively. So the source 
that python used to compile the code isn't accessible any more.

If you do load(sage.misc.preparser.preparse_file_named('test.sage')) an 
intermediate file gets produced explicitly, so python known where to look 
for the source (which will be a little processed compared to what is in 
your sage file. You may have to clean up the temporary file yourself 
afterwards.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to