#13881: Enhanced debugging: cygdb and better backtraces
-------------------------------+--------------------------------------------
Reporter: vbraun | Owner: GeorgSWeber
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.6
Component: build | Resolution:
Keywords: | Work issues:
Report Upstream: N/A | Reviewers:
Authors: | Merged in:
Dependencies: #13669 | Stopgaps:
-------------------------------+--------------------------------------------
Changes (by vbraun):
* status: new => needs_review
* dependencies: => #13669
Old description:
New description:
The purpose of these patches is to make cython emit debugging output
(unless `SAGE_DEBUG=no` since it only costs some disk space) and run cygdb
instead of gdb for `sage --gdb` if `SAGE_DEBUG=yes`. cydbg can be a bit
slow to start up, but gives cython source-level debugging. For example:
{{{
[vbraun@volker-desktop sage-5.6.beta1]$ SAGE_DEBUG=yes ./sage -gdb
----------------------------------------------------------------------
| Sage Version 5.6.beta1, Release Date: 2012-12-27 |
| Type "notebook()" for the browser-based notebook interface. |
| Type "help()" for help. |
----------------------------------------------------------------------
**********************************************************************
* *
* Warning: this is a prerelease version, and it may be unstable. *
* *
**********************************************************************
GNU gdb (GDB) 7.5.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from
/home/vbraun/opt/sage-5.6.beta1/local/bin/python...done.
Python was not compiled with debug symbols (or it was stripped). Some
functionality may not work (properly).
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
sage: from sage.tests.interrupt import unguarded_dereference_null_pointer
sage: unguarded_dereference_null_pointer()
Program received signal SIGSEGV, Segmentation fault.
0x00007fffc1f9d04a in
__pyx_f_4sage_5tests_9interrupt_dereference_null_pointer ()
at sage/tests/interrupt.c:894
894 (__pyx_v_ptr[__pyx_t_1]) = ((__pyx_v_ptr[__pyx_t_1]) + 1);
(gdb) cy list
59 # Dereference a NULL pointer on purpose. This signals a SIGSEGV
on most
60 # systems, but on older Mac OS X and possibly other systems,
this
61 # signals a SIGBUS instead. In any case, this should give some
signal.
62 cdef void dereference_null_pointer():
63 cdef long* ptr = <long*>(0)
> 64 ptr[0] += 1
65
66
67
########################################################################
68 # Python helper functions
#
}}}
Apply
* [attachment:trac_13881_cython_debug_symbols.patch] to the Sage library
* [attachment:trac_13881_launch_cygdb.patch] to the Sage root repository
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13881#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.