forked from qt-creator/qt-creator
Debugger: Replace LocalsUpdateForNewFrame enum value by a bool
Change-Id: I4e7f6ec14a4c40a7d402e6a57f1b14fc37651747 Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user