forked from enlightenment/efl
Eo gdb: remove old and broken gdb macro.
This commit is contained in:
parent
3a98ee3796
commit
3dd51bf53d
|
@ -2,42 +2,3 @@
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
def symbol_equal_to_string(symbol, string):
|
|
||||||
return (symbol != None) and (symbol.name == string)
|
|
||||||
|
|
||||||
class Eo_step(gdb.Command):
|
|
||||||
STEP_LIMIT = 10
|
|
||||||
def __init__(self):
|
|
||||||
gdb.Command.__init__(self, "eo_step", gdb.COMMAND_OBSCURE)
|
|
||||||
self.START_FUNC = "_eo_call_resolve"
|
|
||||||
self.SKIP_FUNC = "_eo_do_start"
|
|
||||||
|
|
||||||
def invoke (self, arg, from_tty):
|
|
||||||
# Get to the call resolve function.
|
|
||||||
i = 0
|
|
||||||
while not symbol_equal_to_string(gdb.selected_frame().function(), self.START_FUNC):
|
|
||||||
if symbol_equal_to_string(gdb.selected_frame().function(), self.SKIP_FUNC):
|
|
||||||
gdb.execute("finish", False, to_string=True)
|
|
||||||
|
|
||||||
if i > Eo_step.STEP_LIMIT:
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
i += 1
|
|
||||||
gdb.execute("step", False, to_string=True)
|
|
||||||
|
|
||||||
# If we found the function, return from it, otherwise, fail.
|
|
||||||
if symbol_equal_to_string(gdb.selected_frame().function(), self.START_FUNC):
|
|
||||||
gdb.execute("finish", False, to_string=True)
|
|
||||||
else:
|
|
||||||
print("Search limit reached, you tried calling eo_step too far from an eo_do.")
|
|
||||||
return
|
|
||||||
|
|
||||||
# Step until we move to a different function. FIXME: The hook can confuse us, needs to be solved.
|
|
||||||
cur_func = gdb.selected_frame().function()
|
|
||||||
while gdb.selected_frame().function() == cur_func:
|
|
||||||
gdb.execute("stepi", False, to_string=True)
|
|
||||||
|
|
||||||
# One last call to skip into the implementation
|
|
||||||
gdb.execute("step", True)
|
|
||||||
|
|
||||||
Eo_step()
|
|
||||||
|
|
Loading…
Reference in New Issue