debugger: try to make core file loading appear snappier

This commit is contained in:
hjk
2010-12-21 14:41:17 +01:00
parent 3f98fb7f63
commit dcd57ab2df
3 changed files with 39 additions and 8 deletions

View File

@@ -75,7 +75,10 @@ void CoreGdbAdapter::startAdapter()
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
showMessage(_("TRYING TO START ADAPTER"));
if (!m_engine->startGdb())
QStringList args;
args.append(_("-ex"));
args.append(_("set auto-solib-add off"));
if (!m_engine->startGdb(args))
return;
//if (m_executable.isEmpty()) {
@@ -149,10 +152,11 @@ void CoreGdbAdapter::handleTemporaryTargetCore(const GdbResponse &response)
void CoreGdbAdapter::handleTemporaryDetach(const GdbResponse &response)
{
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
if (response.resultClass == GdbResultDone)
if (response.resultClass == GdbResultDone) {
m_engine->notifyEngineSetupOk();
else
} else {
m_engine->notifyEngineSetupFailed();
}
}
void CoreGdbAdapter::setupInferior()
@@ -193,6 +197,10 @@ void CoreGdbAdapter::handleTargetCore(const GdbResponse &response)
m_engine->loadPythonDumpers();
showMessage(tr("Attached to core."), StatusBar);
m_engine->handleInferiorPrepared();
// Due to the auto-solib-add off setting, we don't have any
// symbols yet. Load them in order of importance.
m_engine->reloadStack(true);
m_engine->postCommand("info shared", CB(handleModulesList));
return;
}
QString msg = tr("Attach to core \"%1\" failed:\n")
@@ -201,6 +209,23 @@ void CoreGdbAdapter::handleTargetCore(const GdbResponse &response)
m_engine->notifyInferiorSetupFailed(msg);
}
void CoreGdbAdapter::handleModulesList(const GdbResponse &response)
{
m_engine->handleModulesList(response);
loadSymbolsForStack();
}
void CoreGdbAdapter::loadSymbolsForStack()
{
m_engine->loadSymbolsForStack();
QTimer::singleShot(1000, this, SLOT(loadAllSymbols()));
}
void CoreGdbAdapter::loadAllSymbols()
{
m_engine->loadAllSymbols();
}
void CoreGdbAdapter::runEngine()
{
QTC_ASSERT(state() == EngineRunRequested, qDebug() << state());