Commit af97f472 authored by Dieter Verfaillie's avatar Dieter Verfaillie

tools: add support for PyDev remote debugger.

parent fb9dd213
......@@ -8,6 +8,20 @@ debugging
* You can use the GI_SCANNER_DEBUG environment variable; see utils.py
for a list of debug flags.
* It is possible to debug the various g-ir-* tools using PyDev's remote debugger.
To do this:
- locate the directory that contains the pydevd.py file matching the PyDev version
running in your Eclipse instance. This might look like:
/usr/lib64/eclipse/dropins/pydev-core/eclipse/plugins/org.python.pydev_4.0.0.201505131500/pysrc/)
- open the "Debug" perspective in your Eclipse instance, open the "PyDev" menu and start the
debug server
- execute the g-ir-* tool setting the GI_SCANNER_DEBUG and PYDEVDPATH environment variables.
For example:
GI_SCANNER_DEBUG="pydevd" PYDEVDPATH="/usr/lib64/eclipse/dropins/pydev-core/eclipse/plugins/org.python.pydev_4.0.0.201505131500/pysrc/" g-ir-scanner <parameters>
- In the example above, the PyDev debugger will run g-ir-scanner and stop execution in the main
script. You can then set extra breakpoints, step through the code, inspect variables at the
current scope, inspect the stack and so forth.
giscanner
---------
......
......@@ -24,12 +24,21 @@ import sys
import __builtin__
if 'GI_SCANNER_DEBUG' in os.environ:
def on_exception(exctype, value, tb):
print "Caught exception: %r %r" % (exctype, value)
import pdb
pdb.pm()
sys.excepthook = on_exception
debug = os.getenv('GI_SCANNER_DEBUG', '').split(',')
if debug:
if 'pydevd' in debug:
# http://pydev.org/manual_adv_remote_debugger.html
pydevdpath = os.getenv('PYDEVDPATH', None)
if pydevdpath is not None and os.path.isdir(pydevdpath):
sys.path.insert(0, pydevdpath)
import pydevd
pydevd.settrace()
else:
def on_exception(exctype, value, tb):
print "Caught exception: %r %r" % (exctype, value)
import pdb
pdb.pm()
sys.excepthook = on_exception
if os.name == 'nt':
datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
......
......@@ -24,12 +24,21 @@ import sys
import __builtin__
if 'GI_SCANNER_DEBUG' in os.environ:
def on_exception(exctype, value, tb):
print "Caught exception: %r %r" % (exctype, value)
import pdb
pdb.pm()
sys.excepthook = on_exception
debug = os.getenv('GI_SCANNER_DEBUG', '').split(',')
if debug:
if 'pydevd' in debug:
# http://pydev.org/manual_adv_remote_debugger.html
pydevdpath = os.getenv('PYDEVDPATH', None)
if pydevdpath is not None and os.path.isdir(pydevdpath):
sys.path.insert(0, pydevdpath)
import pydevd
pydevd.settrace()
else:
def on_exception(exctype, value, tb):
print "Caught exception: %r %r" % (exctype, value)
import pdb
pdb.pm()
sys.excepthook = on_exception
if os.name == 'nt':
datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
......
......@@ -24,12 +24,21 @@ import sys
import __builtin__
if 'GI_SCANNER_DEBUG' in os.environ:
def on_exception(exctype, value, tb):
print "Caught exception: %r %r" % (exctype, value)
import pdb
pdb.pm()
sys.excepthook = on_exception
debug = os.getenv('GI_SCANNER_DEBUG', '').split(',')
if debug:
if 'pydevd' in debug:
# http://pydev.org/manual_adv_remote_debugger.html
pydevdpath = os.getenv('PYDEVDPATH', None)
if pydevdpath is not None and os.path.isdir(pydevdpath):
sys.path.insert(0, pydevdpath)
import pydevd
pydevd.settrace()
else:
def on_exception(exctype, value, tb):
print "Caught exception: %r %r" % (exctype, value)
import pdb
pdb.pm()
sys.excepthook = on_exception
if os.name == 'nt':
datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
......
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