forked from qt-creator/qt-creator
debugger: move watchpoint convenience functions to breakhandler
Change-Id: I7f214ff5fe6d996c4dd14c6ac181a482ad00c94e Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -1569,5 +1569,32 @@ QString BreakHandler::BreakpointItem::toToolTip() const
|
||||
return rc;
|
||||
}
|
||||
|
||||
void BreakHandler::setWatchpointAtAddress(quint64 address, unsigned size)
|
||||
{
|
||||
BreakpointParameters data(WatchpointAtAddress);
|
||||
data.address = address;
|
||||
data.size = size;
|
||||
BreakpointModelId id = findWatchpoint(data);
|
||||
if (id) {
|
||||
qDebug() << "WATCHPOINT EXISTS";
|
||||
// removeBreakpoint(index);
|
||||
return;
|
||||
}
|
||||
appendBreakpoint(data);
|
||||
}
|
||||
|
||||
void BreakHandler::setWatchpointAtExpression(const QString &exp)
|
||||
{
|
||||
BreakpointParameters data(WatchpointAtExpression);
|
||||
data.expression = exp;
|
||||
BreakpointModelId id = findWatchpoint(data);
|
||||
if (id) {
|
||||
qDebug() << "WATCHPOINT EXISTS";
|
||||
// removeBreakpoint(index);
|
||||
return;
|
||||
}
|
||||
appendBreakpoint(data);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Debugger
|
||||
|
||||
@@ -168,6 +168,10 @@ public:
|
||||
static QString displayFromThreadSpec(int spec);
|
||||
static int threadSpecFromDisplay(const QString &str);
|
||||
|
||||
// Convenience.
|
||||
void setWatchpointAtAddress(quint64 address, unsigned size);
|
||||
void setWatchpointAtExpression(const QString &exp);
|
||||
|
||||
private:
|
||||
// QAbstractItemModel implementation.
|
||||
int columnCount(const QModelIndex &parent) const;
|
||||
|
||||
@@ -912,11 +912,11 @@ void WatchTreeView::contextMenuEvent(QContextMenuEvent *ev)
|
||||
} else if (act == actOpenMemoryEditorStackLayout) {
|
||||
addStackLayoutMemoryView(currentEngine(), false, model(), ev->globalPos(), this);
|
||||
} else if (act == actSetWatchpointAtVariableAddress) {
|
||||
setWatchpointAtAddress(address, size);
|
||||
breakHandler()->setWatchpointAtAddress(address, size);
|
||||
} else if (act == actSetWatchpointAtPointerValue) {
|
||||
setWatchpointAtAddress(pointerValue, sizeof(void *)); // FIXME: an approximation..
|
||||
breakHandler()->setWatchpointAtAddress(pointerValue, sizeof(void *)); // FIXME: an approximation..
|
||||
} else if (act == actSetWatchpointAtExpression) {
|
||||
setWatchpointAtExpression(name);
|
||||
breakHandler()->setWatchpointAtExpression(name);
|
||||
} else if (act == actSelectWidgetToWatch) {
|
||||
grabMouse(Qt::CrossCursor);
|
||||
m_grabbing = true;
|
||||
@@ -1047,32 +1047,5 @@ void WatchTreeView::setModelData
|
||||
model()->setData(index, value, role);
|
||||
}
|
||||
|
||||
void WatchTreeView::setWatchpointAtAddress(quint64 address, unsigned size)
|
||||
{
|
||||
BreakpointParameters data(WatchpointAtAddress);
|
||||
data.address = address;
|
||||
data.size = size;
|
||||
BreakpointModelId id = breakHandler()->findWatchpoint(data);
|
||||
if (id) {
|
||||
qDebug() << "WATCHPOINT EXISTS";
|
||||
// removeBreakpoint(index);
|
||||
return;
|
||||
}
|
||||
breakHandler()->appendBreakpoint(data);
|
||||
}
|
||||
|
||||
void WatchTreeView::setWatchpointAtExpression(const QString &exp)
|
||||
{
|
||||
BreakpointParameters data(WatchpointAtExpression);
|
||||
data.expression = exp;
|
||||
BreakpointModelId id = breakHandler()->findWatchpoint(data);
|
||||
if (id) {
|
||||
qDebug() << "WATCHPOINT EXISTS";
|
||||
// removeBreakpoint(index);
|
||||
return;
|
||||
}
|
||||
breakHandler()->appendBreakpoint(data);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Debugger
|
||||
|
||||
@@ -75,8 +75,6 @@ private:
|
||||
|
||||
void editItem(const QModelIndex &idx);
|
||||
void resetHelper(const QModelIndex &idx);
|
||||
void setWatchpointAtAddress(quint64 address, unsigned size);
|
||||
void setWatchpointAtExpression(const QString &exp);
|
||||
|
||||
void setModelData(int role, const QVariant &value = QVariant(),
|
||||
const QModelIndex &index = QModelIndex());
|
||||
|
||||
Reference in New Issue
Block a user