forked from qt-creator/qt-creator
debugger: make '0' the 'invalid' BreakpointId value
This commit is contained in:
@@ -154,7 +154,7 @@ BreakpointId BreakHandler::findSimilarBreakpoint(const BreakpointResponse &needl
|
|||||||
if (isSimilarTo(data, needle))
|
if (isSimilarTo(data, needle))
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
return BreakpointId(-1);
|
return BreakpointId();
|
||||||
}
|
}
|
||||||
|
|
||||||
BreakpointId BreakHandler::findBreakpointByNumber(int bpNumber) const
|
BreakpointId BreakHandler::findBreakpointByNumber(int bpNumber) const
|
||||||
@@ -163,7 +163,7 @@ BreakpointId BreakHandler::findBreakpointByNumber(int bpNumber) const
|
|||||||
for ( ; it != et; ++it)
|
for ( ; it != et; ++it)
|
||||||
if (it->response.number == bpNumber)
|
if (it->response.number == bpNumber)
|
||||||
return it.key();
|
return it.key();
|
||||||
return BreakpointId(-1);
|
return BreakpointId();
|
||||||
}
|
}
|
||||||
|
|
||||||
BreakpointId BreakHandler::findBreakpointByFunction(const QString &functionName) const
|
BreakpointId BreakHandler::findBreakpointByFunction(const QString &functionName) const
|
||||||
@@ -172,7 +172,7 @@ BreakpointId BreakHandler::findBreakpointByFunction(const QString &functionName)
|
|||||||
for ( ; it != et; ++it)
|
for ( ; it != et; ++it)
|
||||||
if (it->data.functionName == functionName)
|
if (it->data.functionName == functionName)
|
||||||
return it.key();
|
return it.key();
|
||||||
return BreakpointId(-1);
|
return BreakpointId();
|
||||||
}
|
}
|
||||||
|
|
||||||
BreakpointId BreakHandler::findBreakpointByAddress(quint64 address) const
|
BreakpointId BreakHandler::findBreakpointByAddress(quint64 address) const
|
||||||
@@ -181,7 +181,7 @@ BreakpointId BreakHandler::findBreakpointByAddress(quint64 address) const
|
|||||||
for ( ; it != et; ++it)
|
for ( ; it != et; ++it)
|
||||||
if (it->data.address == address)
|
if (it->data.address == address)
|
||||||
return it.key();
|
return it.key();
|
||||||
return BreakpointId(-1);
|
return BreakpointId();
|
||||||
}
|
}
|
||||||
|
|
||||||
BreakpointId BreakHandler::findBreakpointByFileAndLine(const QString &fileName,
|
BreakpointId BreakHandler::findBreakpointByFileAndLine(const QString &fileName,
|
||||||
@@ -191,7 +191,7 @@ BreakpointId BreakHandler::findBreakpointByFileAndLine(const QString &fileName,
|
|||||||
for ( ; it != et; ++it)
|
for ( ; it != et; ++it)
|
||||||
if (it->isLocatedAt(fileName, lineNumber, useMarkerPosition))
|
if (it->isLocatedAt(fileName, lineNumber, useMarkerPosition))
|
||||||
return it.key();
|
return it.key();
|
||||||
return BreakpointId(-1);
|
return BreakpointId();
|
||||||
}
|
}
|
||||||
|
|
||||||
const BreakpointParameters &BreakHandler::breakpointData(BreakpointId id) const
|
const BreakpointParameters &BreakHandler::breakpointData(BreakpointId id) const
|
||||||
@@ -208,25 +208,25 @@ BreakpointId BreakHandler::findWatchpointByAddress(quint64 address) const
|
|||||||
for ( ; it != et; ++it)
|
for ( ; it != et; ++it)
|
||||||
if (it->data.isWatchpoint() && it->data.address == address)
|
if (it->data.isWatchpoint() && it->data.address == address)
|
||||||
return it.key();
|
return it.key();
|
||||||
return BreakpointId(-1);
|
return BreakpointId();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BreakHandler::setWatchpointByAddress(quint64 address)
|
void BreakHandler::setWatchpointByAddress(quint64 address)
|
||||||
{
|
{
|
||||||
const int id = findWatchpointByAddress(address);
|
const int id = findWatchpointByAddress(address);
|
||||||
if (id == -1) {
|
if (id) {
|
||||||
BreakpointParameters data(Watchpoint);
|
|
||||||
data.address = address;
|
|
||||||
appendBreakpoint(data);
|
|
||||||
} else {
|
|
||||||
qDebug() << "WATCHPOINT EXISTS";
|
qDebug() << "WATCHPOINT EXISTS";
|
||||||
// removeBreakpoint(index);
|
// removeBreakpoint(index);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
BreakpointParameters data(Watchpoint);
|
||||||
|
data.address = address;
|
||||||
|
appendBreakpoint(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BreakHandler::hasWatchpointAt(quint64 address) const
|
bool BreakHandler::hasWatchpointAt(quint64 address) const
|
||||||
{
|
{
|
||||||
return findWatchpointByAddress(address) != BreakpointId(-1);
|
return findWatchpointByAddress(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BreakHandler::saveBreakpoints()
|
void BreakHandler::saveBreakpoints()
|
||||||
@@ -354,7 +354,7 @@ BreakpointId BreakHandler::findBreakpointByIndex(const QModelIndex &index) const
|
|||||||
for (int i = 0; it != et; ++it, ++i)
|
for (int i = 0; it != et; ++it, ++i)
|
||||||
if (i == r)
|
if (i == r)
|
||||||
return it.key();
|
return it.key();
|
||||||
return BreakpointId(-1);
|
return BreakpointId();
|
||||||
}
|
}
|
||||||
|
|
||||||
BreakpointIds BreakHandler::findBreakpointsByIndex(const QList<QModelIndex> &list) const
|
BreakpointIds BreakHandler::findBreakpointsByIndex(const QList<QModelIndex> &list) const
|
||||||
|
|||||||
@@ -1316,7 +1316,7 @@ void CdbEngine::handleSessionIdle(const QByteArray &message)
|
|||||||
if (reason == "breakpoint") {
|
if (reason == "breakpoint") {
|
||||||
const int number = stopReason.findChild("breakpointId").data().toInt();
|
const int number = stopReason.findChild("breakpointId").data().toInt();
|
||||||
const BreakpointId id = breakHandler()->findBreakpointByNumber(number);
|
const BreakpointId id = breakHandler()->findBreakpointByNumber(number);
|
||||||
if (id != BreakpointId(-1) && breakHandler()->type(id) == Debugger::Internal::Watchpoint) {
|
if (id && breakHandler()->type(id) == Debugger::Internal::Watchpoint) {
|
||||||
showStatusMessage(msgWatchpointTriggered(id, number, breakHandler()->address(id), QString::number(threadId)));
|
showStatusMessage(msgWatchpointTriggered(id, number, breakHandler()->address(id), QString::number(threadId)));
|
||||||
} else {
|
} else {
|
||||||
showStatusMessage(msgBreakpointTriggered(id, number, QString::number(threadId)));
|
showStatusMessage(msgBreakpointTriggered(id, number, QString::number(threadId)));
|
||||||
|
|||||||
@@ -1338,7 +1338,7 @@ bool DebuggerEngine::isDying() const
|
|||||||
QString DebuggerEngine::msgWatchpointTriggered(BreakpointId id,
|
QString DebuggerEngine::msgWatchpointTriggered(BreakpointId id,
|
||||||
const int number, quint64 address)
|
const int number, quint64 address)
|
||||||
{
|
{
|
||||||
return id != BreakpointId(-1)
|
return id
|
||||||
? tr("Watchpoint %1 (%2) at 0x%3 triggered.")
|
? tr("Watchpoint %1 (%2) at 0x%3 triggered.")
|
||||||
.arg(id).arg(number).arg(address, 0, 16)
|
.arg(id).arg(number).arg(address, 0, 16)
|
||||||
: tr("Internal watchpoint %1 at 0x%2 triggered.")
|
: tr("Internal watchpoint %1 at 0x%2 triggered.")
|
||||||
@@ -1348,7 +1348,7 @@ QString DebuggerEngine::msgWatchpointTriggered(BreakpointId id,
|
|||||||
QString DebuggerEngine::msgWatchpointTriggered(BreakpointId id,
|
QString DebuggerEngine::msgWatchpointTriggered(BreakpointId id,
|
||||||
const int number, quint64 address, const QString &threadId)
|
const int number, quint64 address, const QString &threadId)
|
||||||
{
|
{
|
||||||
return id != BreakpointId(-1)
|
return id
|
||||||
? tr("Watchpoint %1 (%2) at 0x%3 in thread %4 triggered.")
|
? tr("Watchpoint %1 (%2) at 0x%3 in thread %4 triggered.")
|
||||||
.arg(id).arg(number).arg(address, 0, 16).arg(threadId)
|
.arg(id).arg(number).arg(address, 0, 16).arg(threadId)
|
||||||
: tr("Internal watchpoint %1 at 0x%2 in thread %3 triggered.")
|
: tr("Internal watchpoint %1 at 0x%2 in thread %3 triggered.")
|
||||||
@@ -1358,7 +1358,7 @@ QString DebuggerEngine::msgWatchpointTriggered(BreakpointId id,
|
|||||||
QString DebuggerEngine::msgBreakpointTriggered(BreakpointId id,
|
QString DebuggerEngine::msgBreakpointTriggered(BreakpointId id,
|
||||||
const int number, const QString &threadId)
|
const int number, const QString &threadId)
|
||||||
{
|
{
|
||||||
return id != BreakpointId(-1)
|
return id
|
||||||
? tr("Stopped at breakpoint %1 (%2) in thread %3.")
|
? tr("Stopped at breakpoint %1 (%2) in thread %3.")
|
||||||
.arg(id).arg(number).arg(threadId)
|
.arg(id).arg(number).arg(threadId)
|
||||||
: tr("Stopped at internal breakpoint %1 in thread %2.")
|
: tr("Stopped at internal breakpoint %1 in thread %2.")
|
||||||
|
|||||||
@@ -2391,7 +2391,7 @@ void DebuggerPluginPrivate::requestContextMenu(TextEditor::ITextEditor *editor,
|
|||||||
if (!isDebuggable(editor))
|
if (!isDebuggable(editor))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
BreakpointId id = -1;
|
BreakpointId id = BreakpointId();
|
||||||
QString fileName;
|
QString fileName;
|
||||||
quint64 address = 0;
|
quint64 address = 0;
|
||||||
|
|
||||||
@@ -2415,7 +2415,7 @@ void DebuggerPluginPrivate::requestContextMenu(TextEditor::ITextEditor *editor,
|
|||||||
args.append(lineNumber);
|
args.append(lineNumber);
|
||||||
args.append(address);
|
args.append(address);
|
||||||
|
|
||||||
if (id != BreakpointId(-1)) {
|
if (id) {
|
||||||
// Remove existing breakpoint.
|
// Remove existing breakpoint.
|
||||||
QAction *act = new QAction(menu);
|
QAction *act = new QAction(menu);
|
||||||
act->setData(int(id));
|
act->setData(int(id));
|
||||||
@@ -2497,10 +2497,10 @@ void DebuggerPluginPrivate::toggleBreakpointByFileAndLine(const QString &fileNam
|
|||||||
BreakHandler *handler = m_breakHandler;
|
BreakHandler *handler = m_breakHandler;
|
||||||
BreakpointId id =
|
BreakpointId id =
|
||||||
handler->findBreakpointByFileAndLine(fileName, lineNumber, true);
|
handler->findBreakpointByFileAndLine(fileName, lineNumber, true);
|
||||||
if (id == BreakpointId(-1))
|
if (!id)
|
||||||
id = handler->findBreakpointByFileAndLine(fileName, lineNumber, false);
|
id = handler->findBreakpointByFileAndLine(fileName, lineNumber, false);
|
||||||
|
|
||||||
if (id != BreakpointId(-1)) {
|
if (id) {
|
||||||
handler->removeBreakpoint(id);
|
handler->removeBreakpoint(id);
|
||||||
} else {
|
} else {
|
||||||
BreakpointParameters data(BreakpointByFileAndLine);
|
BreakpointParameters data(BreakpointByFileAndLine);
|
||||||
@@ -2516,7 +2516,7 @@ void DebuggerPluginPrivate::toggleBreakpointByAddress(quint64 address)
|
|||||||
BreakHandler *handler = m_breakHandler;
|
BreakHandler *handler = m_breakHandler;
|
||||||
BreakpointId id = handler->findBreakpointByAddress(address);
|
BreakpointId id = handler->findBreakpointByAddress(address);
|
||||||
|
|
||||||
if (id != BreakpointId(-1)) {
|
if (id) {
|
||||||
handler->removeBreakpoint(id);
|
handler->removeBreakpoint(id);
|
||||||
} else {
|
} else {
|
||||||
BreakpointParameters data(BreakpointByAddress);
|
BreakpointParameters data(BreakpointByAddress);
|
||||||
|
|||||||
Reference in New Issue
Block a user