forked from qt-creator/qt-creator
Debugger: Cleanup LLDB python startup code
Change-Id: I682e78c352066ddd05e96199fd8ead088e3e9f55 Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
@@ -689,63 +689,34 @@ class Dumper:
|
|||||||
self.executable_ = executable
|
self.executable_ = executable
|
||||||
error = lldb.SBError()
|
error = lldb.SBError()
|
||||||
self.target = self.debugger.CreateTarget(executable, None, None, True, error)
|
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():
|
if self.target.IsValid():
|
||||||
self.report('state="inferiorsetupok",msg="%s",exe="%s"' % (error, executable))
|
self.report('state="inferiorsetupok",msg="%s",exe="%s"' % (error, executable))
|
||||||
else:
|
else:
|
||||||
self.report('state="inferiorsetupfailed",msg="%s",exe="%s"' % (error, executable))
|
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()])
|
warn("STATE AFTER LAUNCH: %s" % stateNames[self.process.GetState()])
|
||||||
|
|
||||||
def runEngine(self, _):
|
def runEngine(self, _):
|
||||||
error = lldb.SBError()
|
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.pid = self.process.GetProcessID()
|
||||||
self.report('pid="%s"' % self.pid)
|
self.report('pid="%s"' % self.pid)
|
||||||
self.report('state="enginerunandinferiorstopok"')
|
self.consumeEvents()
|
||||||
error = self.process.Continue()
|
error = self.process.Continue()
|
||||||
#self.reportError(error)
|
self.consumeEvents()
|
||||||
#self.report('state="enginerunandinferiorstopok"')
|
self.reportError(error)
|
||||||
|
|
||||||
|
self.report('state="enginerunandinferiorrunok"')
|
||||||
|
|
||||||
if self.useLoop:
|
if self.useLoop:
|
||||||
s = threading.Thread(target=self.loop, args=[])
|
s = threading.Thread(target=self.loop, args=[])
|
||||||
@@ -1271,6 +1242,10 @@ class Dumper:
|
|||||||
|
|
||||||
def updateData(self, args):
|
def updateData(self, args):
|
||||||
self.expandedINames = set(args['expanded'].split(','))
|
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()
|
self.reportData()
|
||||||
|
|
||||||
def disassemble(self, args):
|
def disassemble(self, args):
|
||||||
@@ -1328,6 +1303,13 @@ class Dumper:
|
|||||||
cont = args['continuation']
|
cont = args['continuation']
|
||||||
self.report('continuation="%s"' % cont)
|
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())))
|
currentDir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
|
||||||
execfile(os.path.join(currentDir, "qttypes.py"))
|
execfile(os.path.join(currentDir, "qttypes.py"))
|
||||||
|
|
||||||
@@ -1339,21 +1321,15 @@ def doit1():
|
|||||||
db.report('state="enginesetupok"')
|
db.report('state="enginesetupok"')
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
readable, _, _ = select.select([sys.stdin], [], [], 0.1)
|
db.consumeEvents()
|
||||||
event = lldb.SBEvent()
|
|
||||||
if db.listener and db.listener.PeekAtNextEvent(event):
|
|
||||||
db.listener.GetNextEvent(event)
|
|
||||||
db.handleEvent(event)
|
|
||||||
|
|
||||||
|
readable, _, _ = select.select([sys.stdin], [], [], 0.1)
|
||||||
if sys.stdin in readable:
|
if sys.stdin in readable:
|
||||||
line = raw_input()
|
line = raw_input()
|
||||||
if line.startswith("db "):
|
if line.startswith("db "):
|
||||||
db.execute(eval(line[3:]))
|
db.execute(eval(line[3:]))
|
||||||
|
|
||||||
event = lldb.SBEvent()
|
db.consumeEvents()
|
||||||
if db.listener and db.listener.PeekAtNextEvent(event):
|
|
||||||
db.listener.GetNextEvent(event)
|
|
||||||
db.handleEvent(event)
|
|
||||||
|
|
||||||
def doit2():
|
def doit2():
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user