From 31634a07f435cf69a56b6d7a4002108df7027d6f Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 May 2013 14:55:57 +0200 Subject: [PATCH] Debugger: Cleanup LLDB python startup code Change-Id: I682e78c352066ddd05e96199fd8ead088e3e9f55 Reviewed-by: hjk --- share/qtcreator/dumper/lbridge.py | 84 +++++++++++-------------------- 1 file changed, 30 insertions(+), 54 deletions(-) diff --git a/share/qtcreator/dumper/lbridge.py b/share/qtcreator/dumper/lbridge.py index 4c33702b2de..452d9d44161 100644 --- a/share/qtcreator/dumper/lbridge.py +++ b/share/qtcreator/dumper/lbridge.py @@ -689,63 +689,34 @@ class Dumper: self.executable_ = executable error = lldb.SBError() self.target = self.debugger.CreateTarget(executable, None, None, True, error) + self.listener = self.target.GetDebugger().GetListener() + self.process = self.target.Launch(self.listener, None, None, + None, None, None, + None, 0, True, error) + self.broadcaster = self.process.GetBroadcaster() + rc = self.broadcaster.AddListener(self.listener, 15) + if rc != 15: + warn("ADDING LISTENER FAILED: %s" % rc) + + self.importDumpers() + if self.target.IsValid(): self.report('state="inferiorsetupok",msg="%s",exe="%s"' % (error, executable)) else: self.report('state="inferiorsetupfailed",msg="%s",exe="%s"' % (error, executable)) - self.importDumpers() - if False: - self.process = self.target.LaunchSimple(None, None, os.getcwd()) - self.broadcaster = self.process.GetBroadcaster() - self.listener = lldb.SBListener('my listener') - rc = self.broadcaster.AddListener(self.listener, 15) - warn("ADD LISTENER: %s" % rc) - if True: - self.listener = self.target.GetDebugger().GetListener() - self.process = self.target.Launch(self.listener, None, None, - None, None, None, - None, 0, True, error) - self.broadcaster = self.process.GetBroadcaster() - rc = self.broadcaster.AddListener(self.listener, 15) - warn("ADD LISTENER: %s" % rc) - #self.process = self.target.Launch(self.listener, None, None, - # None, None, None, - # os.getcwd(), - # lldb.eLaunchFlagExec - # + lldb.eLaunchFlagDebug - # #+ lldb.eLaunchFlagDebug - # #+ lldb.eLaunchFlagStopAtEntry - # #+ lldb.eLaunchFlagDisableSTDIO - # #+ lldb.eLaunchFlagLaunchInSeparateProcessGroup - # , False, error) - #self.reportError(error) - warn("STATE AFTER LAUNCH: %s" % self.process.GetState()) warn("STATE AFTER LAUNCH: %s" % stateNames[self.process.GetState()]) def runEngine(self, _): error = lldb.SBError() - #launchInfo = lldb.SBLaunchInfo(["-s"]) - #self.process = self.target.Launch(self.listener, None, None, - # None, None, None, - # None, 0, True, error) - #self.listener = lldb.SBListener("event_Listener") - #self.process = self.target.Launch(self.listener, None, None, - # None, None, None, - # os.getcwd(), - # lldb.eLaunchFlagExec - # + lldb.eLaunchFlagDebug - # #+ lldb.eLaunchFlagDebug - # #+ lldb.eLaunchFlagStopAtEntry - # #+ lldb.eLaunchFlagDisableSTDIO - # #+ lldb.eLaunchFlagLaunchInSeparateProcessGroup - # , False, error) self.pid = self.process.GetProcessID() self.report('pid="%s"' % self.pid) - self.report('state="enginerunandinferiorstopok"') + self.consumeEvents() error = self.process.Continue() - #self.reportError(error) - #self.report('state="enginerunandinferiorstopok"') + self.consumeEvents() + self.reportError(error) + + self.report('state="enginerunandinferiorrunok"') if self.useLoop: s = threading.Thread(target=self.loop, args=[]) @@ -1271,6 +1242,10 @@ class Dumper: def updateData(self, args): self.expandedINames = set(args['expanded'].split(',')) + self.autoDerefPointers = int(args['autoderef']) + self.useDynamicType = int(args['dyntype']) + # Keep always True for now. + #self.passExceptions = args['pe'] self.reportData() def disassemble(self, args): @@ -1328,6 +1303,13 @@ class Dumper: cont = args['continuation'] self.report('continuation="%s"' % cont) + def consumeEvents(self): + event = lldb.SBEvent() + if self.listener and self.listener.PeekAtNextEvent(event): + self.listener.GetNextEvent(event) + self.handleEvent(event) + + currentDir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) execfile(os.path.join(currentDir, "qttypes.py")) @@ -1339,21 +1321,15 @@ def doit1(): db.report('state="enginesetupok"') while True: - readable, _, _ = select.select([sys.stdin], [], [], 0.1) - event = lldb.SBEvent() - if db.listener and db.listener.PeekAtNextEvent(event): - db.listener.GetNextEvent(event) - db.handleEvent(event) + db.consumeEvents() + readable, _, _ = select.select([sys.stdin], [], [], 0.1) if sys.stdin in readable: line = raw_input() if line.startswith("db "): db.execute(eval(line[3:])) - event = lldb.SBEvent() - if db.listener and db.listener.PeekAtNextEvent(event): - db.listener.GetNextEvent(event) - db.handleEvent(event) + db.consumeEvents() def doit2():