Debugger: Pass autoderef pointers down to LLDB machinery

Change-Id: I282e78c352066ddd05e96199fd8ead088e3e9f56
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2013-05-29 14:54:47 +02:00
parent d7f96e3201
commit cc611e076f
3 changed files with 23 additions and 7 deletions

View File

@@ -504,6 +504,7 @@ class Dumper:
self.useLldbDumpers = False
self.ns = ""
self.autoDerefPointers = True
self.useDynamicType = True
self.useLoop = True
self.currentIName = None

View File

@@ -84,6 +84,17 @@ LldbEngine::LldbEngine(const DebuggerStartParameters &startParameters)
m_lastAgentId = 0;
m_lastToken = 0;
setObjectName(QLatin1String("LldbEngine"));
connect(debuggerCore()->action(AutoDerefPointers), SIGNAL(valueChanged(QVariant)),
SLOT(updateLocals()));
connect(debuggerCore()->action(CreateFullBacktrace), SIGNAL(triggered()),
SLOT(updateAll()));
connect(debuggerCore()->action(UseDebuggingHelpers), SIGNAL(valueChanged(QVariant)),
SLOT(updateLocals()));
connect(debuggerCore()->action(UseDynamicType), SIGNAL(valueChanged(QVariant)),
SLOT(updateLocals()));
connect(debuggerCore()->action(IntelFlavor), SIGNAL(valueChanged(QVariant)),
SLOT(updateAll()));
}
LldbEngine::~LldbEngine()
@@ -654,6 +665,10 @@ bool LldbEngine::setToolTipExpression(const QPoint &mousePos,
return false;
}
void LldbEngine::updateAll()
{
updateLocals();
}
//////////////////////////////////////////////////////////////////////
//
@@ -677,6 +692,11 @@ void LldbEngine::updateWatchData(const WatchData &data, const WatchUpdateFlags &
{
Q_UNUSED(data);
Q_UNUSED(flags);
updateLocals();
}
void LldbEngine::updateLocals()
{
WatchHandler *handler = watchHandler();
Command cmd("updateData");
@@ -873,11 +893,6 @@ QByteArray LldbEngine::currentOptions() const
return result;
}
void LldbEngine::updateAll()
{
runCommand("reportData");
}
void LldbEngine::refreshLocals(const GdbMi &vars)
{
//const bool partial = response.cookie.toBool();

View File

@@ -153,6 +153,8 @@ private:
Q_SLOT void readLldbStandardError();
Q_SLOT void handleResponse(const QByteArray &data);
Q_SLOT void runEngine2();
Q_SLOT void updateAll();
Q_SLOT void updateLocals();
void refreshAll(const GdbMi &all);
void refreshThreads(const GdbMi &threads);
void refreshStack(const GdbMi &stack);
@@ -167,8 +169,6 @@ private:
void refreshBreakpoints(const GdbMi &bkpts);
void runContinuation(const GdbMi &data);
void updateAll();
typedef void (LldbEngine::*LldbCommandContinuation)();
QByteArray currentOptions() const;