# What is your favorite way to debug sage code?

 4 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 153 ● 3 ● 4 ● 11

 2 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 +  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. = 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. posted Oct 13 '10 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)

[hide preview]

## Stats:

Asked: Oct 13 '10

Seen: 672 times

Last updated: Oct 13 '10