diff -r f4e0f6133ace -r c7dd548d67d8 Debugger/DebuggerInterfacePython.py --- a/Debugger/DebuggerInterfacePython.py Thu Nov 01 15:31:06 2012 +0100 +++ b/Debugger/DebuggerInterfacePython.py Thu Nov 01 18:29:58 2012 +0100 @@ -670,6 +670,18 @@ self.__sendCommand('{0}{1:d}, "{2}"\n'.format( DebugProtocol.RequestSetFilter, scope, filter)) + def setCallTraceEnabled(self, on): + """ + Public method to set the call trace state. + + @param on flag indicating to enable the call trace function (boolean) + """ + if on: + cmd = "on" + else: + cmd = "off" + self.__sendCommand('{0}{1}\n'.format(DebugProtocol.RequestCallTrace, cmd)) + def remoteEval(self, arg): """ Public method to evaluate arg in the current context of the debugged program. @@ -805,6 +817,16 @@ self.debugServer.signalClientStack(stack) continue + if resp == DebugProtocol.CallTrace: + event, fromStr, toStr = line[eoc:-1].split("@@") + isCall = event.lower() == "c" + fromFile, fromLineno, fromFunc = fromStr.rsplit(":", 2) + toFile, toLineno, toFunc = toStr.rsplit(":", 2) + self.debugServer.signalClientCallTrace(isCall, + fromFile, fromLineno, fromFunc, + toFile, toLineno, toFunc) + continue + if resp == DebugProtocol.ResponseThreadList: currentId, threadList = eval(evalArg) self.debugServer.signalClientThreadList(currentId, threadList)