What is your favorite way to debug sage code?

i like this post (click again to cancel)
4
i dont like this post (click again to cancel)

How do you debug sage code?

My favorite way do debug Python code is to use pdb in GUD emacs-mode.

I split the window into two buffers; in one I interact with pdb, in the other I see the code I'm debugging with the current line highlighted. When I step into a function which is defined in a different file, this window automatically shows the content of the new file.

Is it possible to use pdb and GUD with sage? Or is it possible to achieve this effect in a different way?

asked Oct 13 '10

Philipp Schneider gravatar image Philipp Schneider
153 3 4 11
i like this answer (click again to cancel)
2
i dont like this answer (click again to cancel)

Here's one way to use Emacs' Grand Unified Debugger (GUD) with the Sage library:

  • Ensure sage is in the PATH.
  • cd SAGE_ROOT
  • cp local/lib/python/pdb.py .
  • Change the first line of pdb.py to #!/usr/bin/env sage
  • Run emacs and type M-x pdb + <ENTER>
  • Use Run pdb (like this): ./pdb.py foo.py to debug foo.py.

Caveats:

  • foo.py should contain a statement like from sage.all import *, in order to use Sage library code.
  • The code in foo.py should not require the Sage preparser. You'll need to use R = PolynomialRing(QQ, 'a,b,c'), for example, instead of R.<a,b,c> = QQ[].

I hope there's a better way! But with this approach, stepping into R = PolynomialRing(QQ, 'a,b,c') will make Emacs jump to the appropriate line of polynomial_ring_constructor.py.

link

posted Oct 13 '10

Mitesh Patel gravatar image Mitesh Patel
253 3 9
Thanks. This is not a pretty solution, but it works. Also, instead of avoiding code that needs to be preparsed I can run sage -preparse foo.sage and then debug the resulting foo.py... Philipp Schneider (Oct 13 '10)
I sometimes use the trace() function in Sage for a quick debugging job. mvngu (Oct 13 '10)

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
Login/Signup to Post

Question tools

Tags:

Stats:

Asked: Oct 13 '10

Seen: 696 times

Last updated: Oct 13 '10

powered by ASKBOT version 0.7.22
Copyright Sage, 2010. Some rights reserved under creative commons license.