########################################################################
# 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
+# 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)
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()
--- /dev/null
+import sys
+
+eodir = '@datadir@/eo/gdb'
+if not eodir in sys.path:
+ sys.path.insert(0, eodir)
+
+import eo_gdb