Debugger: Replace LocalsUpdateForNewFrame enum value by a bool

Change-Id: I4e7f6ec14a4c40a7d402e6a57f1b14fc37651747
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
hjk
2015-03-06 17:00:36 +01:00
parent 0ebbcc5615
commit 159f4e4f39
2 changed files with 10 additions and 13 deletions

View File

@@ -85,8 +85,6 @@ enum { debugSourceMapping = 0 };
enum { debugWatches = 0 }; enum { debugWatches = 0 };
enum { debugBreakpoints = 0 }; enum { debugBreakpoints = 0 };
enum { LocalsUpdateForNewFrame = 0x1 };
#define CB(callback) [this](const CdbCommandPtr &r) { callback(r); } #define CB(callback) [this](const CdbCommandPtr &r) { callback(r); }
#if 0 #if 0
@@ -1050,7 +1048,7 @@ void CdbEngine::updateLocalVariable(const QByteArray &iname)
} }
str << blankSeparator << iname; str << blankSeparator << iname;
postExtensionCommand(isWatch ? "watches" : "locals", localsArguments, 0, postExtensionCommand(isWatch ? "watches" : "locals", localsArguments, 0,
[this](const CdbCommandPtr &r) { handleLocals(r, 0); }); [this](const CdbCommandPtr &r) { handleLocals(r, false); });
} }
bool CdbEngine::hasCapability(unsigned cap) const bool CdbEngine::hasCapability(unsigned cap) const
@@ -1303,7 +1301,7 @@ void CdbEngine::assignValueInDebugger(const WatchData *w, const QString &expr, c
postCommand(cmd, 0); postCommand(cmd, 0);
// Update all locals in case we change a union or something pointed to // Update all locals in case we change a union or something pointed to
// that affects other variables, too. // that affects other variables, too.
updateLocals(); updateLocals(false);
} }
void CdbEngine::handleThreads(const CdbCommandPtr &reply) void CdbEngine::handleThreads(const CdbCommandPtr &reply)
@@ -1436,7 +1434,7 @@ void CdbEngine::activateFrame(int index)
updateLocals(true); updateLocals(true);
} }
void CdbEngine::updateLocals(bool forNewStackFrame) void CdbEngine::updateLocals(bool newFrame)
{ {
typedef QHash<QByteArray, int> WatcherHash; typedef QHash<QByteArray, int> WatcherHash;
@@ -1450,7 +1448,7 @@ void CdbEngine::updateLocals(bool forNewStackFrame)
watchHandler()->removeAllData(); watchHandler()->removeAllData();
return; return;
} }
if (forNewStackFrame) if (newFrame)
watchHandler()->resetValueCache(); watchHandler()->resetValueCache();
/* Watchers: Forcibly discard old symbol group as switching from /* Watchers: Forcibly discard old symbol group as switching from
* thread 0/frame 0 -> thread 1/assembly -> thread 0/frame 0 will otherwise re-use it * thread 0/frame 0 -> thread 1/assembly -> thread 0/frame 0 will otherwise re-use it
@@ -1499,10 +1497,9 @@ void CdbEngine::updateLocals(bool forNewStackFrame)
} }
// Required arguments: frame // Required arguments: frame
const int flags = forNewStackFrame ? LocalsUpdateForNewFrame : 0;
str << blankSeparator << frameIndex; str << blankSeparator << frameIndex;
postExtensionCommand("locals", arguments, 0, postExtensionCommand("locals", arguments, 0,
[this, flags](const CdbCommandPtr &r) { handleLocals(r, flags); }); [this, newFrame](const CdbCommandPtr &r) { handleLocals(r, newFrame); });
} }
void CdbEngine::selectThread(ThreadId threadId) void CdbEngine::selectThread(ThreadId threadId)
@@ -1857,14 +1854,14 @@ void CdbEngine::handleRegistersExt(const CdbCommandPtr &reply)
postCommandSequence(reply->commandSequence); postCommandSequence(reply->commandSequence);
} }
void CdbEngine::handleLocals(const CdbCommandPtr &reply, int flags) void CdbEngine::handleLocals(const CdbCommandPtr &reply, bool newFrame)
{ {
if (reply->success) { if (reply->success) {
if (boolSetting(VerboseLog)) if (boolSetting(VerboseLog))
showMessage(QLatin1String("Locals: ") + QString::fromLatin1(reply->extensionReply), LogDebug); showMessage(QLatin1String("Locals: ") + QString::fromLatin1(reply->extensionReply), LogDebug);
QList<WatchData> watchData; QList<WatchData> watchData;
WatchHandler *handler = watchHandler(); WatchHandler *handler = watchHandler();
if (flags & LocalsUpdateForNewFrame) { if (newFrame) {
watchData.append(*handler->findData("local")); watchData.append(*handler->findData("local"));
watchData.append(*handler->findData("watch")); watchData.append(*handler->findData("watch"));
} }
@@ -1896,7 +1893,7 @@ void CdbEngine::handleLocals(const CdbCommandPtr &reply, int flags)
foreach (const WatchData &wd, watchData) foreach (const WatchData &wd, watchData)
nsp << wd.toString() <<'\n'; nsp << wd.toString() <<'\n';
} }
if (flags & LocalsUpdateForNewFrame) { if (newFrame) {
emit stackFrameCompleted(); emit stackFrameCompleted();
DebuggerToolTipManager::updateEngine(this); DebuggerToolTipManager::updateEngine(this);
} }

View File

@@ -234,7 +234,7 @@ private:
// Extension commands // Extension commands
void handleThreads(const CdbCommandPtr &); void handleThreads(const CdbCommandPtr &);
void handlePid(const CdbCommandPtr &reply); void handlePid(const CdbCommandPtr &reply);
void handleLocals(const CdbCommandPtr &reply, int flags); void handleLocals(const CdbCommandPtr &reply, bool newFrame);
void handleAddWatch(const CdbCommandPtr &reply, WatchData item); void handleAddWatch(const CdbCommandPtr &reply, WatchData item);
void handleExpandLocals(const CdbCommandPtr &reply); void handleExpandLocals(const CdbCommandPtr &reply);
void handleRegistersExt(const CdbCommandPtr &reply); void handleRegistersExt(const CdbCommandPtr &reply);
@@ -246,7 +246,7 @@ private:
void handleAdditionalQmlStack(const CdbCommandPtr &); void handleAdditionalQmlStack(const CdbCommandPtr &);
NormalizedSourceFileName sourceMapNormalizeFileNameFromDebugger(const QString &f); NormalizedSourceFileName sourceMapNormalizeFileNameFromDebugger(const QString &f);
void updateLocalVariable(const QByteArray &iname); void updateLocalVariable(const QByteArray &iname);
void updateLocals(bool forNewStackFrame = false); void updateLocals(bool forNewStackFrame);
int elapsedLogTime() const; int elapsedLogTime() const;
void addLocalsOptions(ByteArrayInputStream &s) const; void addLocalsOptions(ByteArrayInputStream &s) const;
unsigned parseStackTrace(const GdbMi &data, bool sourceStepInto); unsigned parseStackTrace(const GdbMi &data, bool sourceStepInto);