Debugger: Consolidate some GDB-through-Python interaction

Instead of calling a GDB extension command invoking a function
on the well-known Dumper instance, call the Dumper function
directly. This also makes the code more similar to the LLDB side.

Change-Id: I4b23177eb72a904721b63c578ce7fbfe204f02a2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
hjk
2015-02-11 12:20:21 +01:00
parent 2c4b9fb64f
commit e76c4839bb
5 changed files with 19 additions and 41 deletions

View File

@@ -1884,11 +1884,15 @@ void GdbEngine::notifyAdapterShutdownOk()
.arg(lastGoodState()).arg(m_gdbProc->state()));
m_commandsDoneCallback = 0;
switch (m_gdbProc->state()) {
case QProcess::Running:
case QProcess::Running: {
if (startParameters().closeMode == KillAndExitMonitorAtClose)
postCommand("monitor exit");
postCommand("exitGdb", GdbEngine::ExitRequest, CB(handleGdbExit));
DebuggerCommand cmd("exitGdb");
cmd.flags = GdbEngine::ExitRequest;
cmd.callback = CB(handleGdbExit);
runCommand(cmd);
break;
}
case QProcess::NotRunning:
// Cannot find executable.
notifyEngineShutdownOk();
@@ -4287,8 +4291,11 @@ void GdbEngine::startGdb(const QStringList &args)
postCommand("python from gdbbridge import *", flags);
const QString path = stringSetting(ExtraDumperFile);
if (!path.isEmpty())
postCommand("python addExtraDumper('" + path.toUtf8() + "')", flags);
if (!path.isEmpty()) {
DebuggerCommand cmd("addDumperModule");
cmd.arg("path", path.toUtf8());
runCommand(cmd);
}
const QString commands = stringSetting(ExtraDumperCommands);
if (!commands.isEmpty())
@@ -4324,7 +4331,7 @@ void GdbEngine::loadInitScript()
void GdbEngine::reloadDebuggingHelpers()
{
postCommand("reload");
runCommand("reloadDumper");
reloadLocals();
}