Commit 8a10a7ea authored by Mark Florisson's avatar Mark Florisson

cygdb script in setup.py (posix and windows)

parent f88e64b6
#!/usr/bin/env python #!/usr/bin/env python
"""
The Cython debugger
The current directory should contain a directory named 'cython_debug', or a
path to the cython project directory should be given (the parent directory of
cython_debug).
"""
import os
import sys import sys
import glob from Cython.Debugger import cygdb
import tempfile
import subprocess
def main(import_libpython=False, path_to_debug_info=os.curdir):
"""
Start the Cython debugger. This tells gdb to import the Cython and Python
extensions (libpython.py and libcython.py) and it enables gdb's pending
breakpoints
"""
debug_files = glob.glob(
os.path.join(os.curdir, 'cython_debug/cython_debug_info_*'))
if not debug_files:
sys.exit('No debug files were found in the current directory. '
'Aborting.')
fd, tempfilename = tempfile.mkstemp()
f = os.fdopen(fd, 'w')
f.write('set breakpoint pending on\n')
f.write('python from Cython.Debugger import libcython\n')
if import_libpython:
f.write('python import libpython')
else:
f.write('python from Cython.Debugger import libpython\n')
f.write('\n'.join('cy import %s\n' % fn for fn in debug_files))
f.close()
p = subprocess.Popen(['gdb', '-command', tempfilename])
while True:
try:
p.wait()
except KeyboardInterrupt:
pass
else:
break
os.remove(tempfilename)
if __name__ == '__main__': if __name__ == '__main__':
main() if len(sys.argv) > 1:
\ No newline at end of file cygdb.main(path_to_debug_info=sys.argv[1])
else:
cygdb.main()
\ No newline at end of file
#!/usr/bin/env python
import sys
from Cython.Debugger import cygdb
if __name__ == '__main__':
if len(sys.argv) > 1:
cygdb.main(path_to_debug_info=sys.argv[1])
else:
cygdb.main()
\ No newline at end of file
...@@ -80,9 +80,9 @@ if 'setuptools' in sys.modules: ...@@ -80,9 +80,9 @@ if 'setuptools' in sys.modules:
scripts = [] scripts = []
else: else:
if os.name == "posix": if os.name == "posix":
scripts = ["bin/cython"] scripts = ["bin/cython", "bin/cygdb"]
else: else:
scripts = ["cython.py"] scripts = ["cython.py", "cygdb.py"]
def compile_cython_modules(profile=False): def compile_cython_modules(profile=False):
source_root = os.path.abspath(os.path.dirname(__file__)) source_root = os.path.abspath(os.path.dirname(__file__))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment