Eo gdb: eo gdb script is now autoloaded by gdb, added eo_backtrace.

If you install the efl to a different path than the one gdb was installed to
either set gdb's data dir, or just symlink the file to the other prefix.
You can still use the old method of just loading the module.
devs/jeyzu/eina-api
Tom Hacohen 10 years ago
parent 32f27fee7e
commit 9ad398be60
  1. 15
      data/Makefile.am
  2. 18
      data/eo/eo_gdb.py
  3. 7
      data/eo/libeo-gdb.py.in

@ -35,9 +35,18 @@ EXTRA_DIST += $(efreetfiles_DATA)
########################################################################
# Eo
eofilesdir = $(datadir)/eo
eofiles_DATA = eo/eo_step.py
EXTRA_DIST += $(eofiles_DATA)
eogdbdir = $(datadir)/eo/gdb
eogdb_SCRIPTS = eo/eo_gdb.py
# Borrowed from gobject
eo/libeo-gdb.py: eo/libeo-gdb.py.in
$(AM_V_GEN) $(SED) -e "s|\@datadir\@|$(datadir)|" $(srcdir)/eo/libeo-gdb.py.in > $(builddir)/eo/libeo-gdb.py
install-data-hook: eo/libeo-gdb.py
$(MKDIR_P) $(datadir)/gdb/auto-load/$(libdir)
$(INSTALL) $(builddir)/eo/libeo-gdb.py $(datadir)/gdb/auto-load/$(libdir)/libeo.so.@VMAJ@.@VMIN@.@VMIC@-gdb.py
EXTRA_DIST += $(gdbscripts_SCRIPTS) eo/libeo-gdb.py.in
########################################################################
# Edje

@ -1,3 +1,7 @@
# Implement eo_break that'll break on a macro/subid/whatever.
import gdb
class Eo_step(gdb.Command):
def __init__(self):
gdb.Command.__init__(self, "eo_step", gdb.COMMAND_OBSCURE)
@ -15,3 +19,17 @@ class Eo_step(gdb.Command):
print "Stopped at file " + gdb.selected_frame().find_sal().symtab.filename+ " line " + str(gdb.selected_frame().find_sal().line) + " function " + str(gdb.selected_frame().function())
Eo_step()
# Very crude, but works for the meanwhile
class Eo_backtrace(gdb.Command):
def __init__(self):
gdb.Command.__init__(self, "eo_backtrace", gdb.COMMAND_OBSCURE)
def invoke (self, arg, from_tty):
btrace = gdb.execute("backtrace", False, to_string=True).split('\n')
for line in btrace:
if line.find("libeo.so") == -1 and line.find("src/lib/eo/") == -1:
print line
Eo_backtrace()

@ -0,0 +1,7 @@
import sys
eodir = '@datadir@/eo/gdb'
if not eodir in sys.path:
sys.path.insert(0, eodir)
import eo_gdb
Loading…
Cancel
Save