forked from qt-creator/qt-creator
debugger: thread 0 is valid for cdb. so use -1 as 'any' value
This commit is contained in:
@@ -375,9 +375,16 @@ Qt::ItemFlags BreakHandler::flags(const QModelIndex &index) const
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString threadString(int spec)
|
QString BreakHandler::displayFromThreadSpec(int spec)
|
||||||
{
|
{
|
||||||
return spec == 0 ? BreakHandler::tr("(all)") : QString::number(spec);
|
return spec == -1 ? BreakHandler::tr("(all)") : QString::number(spec);
|
||||||
|
}
|
||||||
|
|
||||||
|
int BreakHandler::threadSpecFromDisplay(const QString &str)
|
||||||
|
{
|
||||||
|
bool ok = false;
|
||||||
|
int result = str.toInt(&ok);
|
||||||
|
return ok ? result : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant BreakHandler::data(const QModelIndex &mi, int role) const
|
QVariant BreakHandler::data(const QModelIndex &mi, int role) const
|
||||||
@@ -494,11 +501,11 @@ QVariant BreakHandler::data(const QModelIndex &mi, int role) const
|
|||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
if (role == Qt::DisplayRole)
|
if (role == Qt::DisplayRole)
|
||||||
return threadString(orig ? data.threadSpec : response.threadSpec);
|
return displayFromThreadSpec(orig ? data.threadSpec : response.threadSpec);
|
||||||
if (role == Qt::ToolTipRole)
|
if (role == Qt::ToolTipRole)
|
||||||
return tr("Breakpoint will only be hit in the specified thread(s).");
|
return tr("Breakpoint will only be hit in the specified thread(s).");
|
||||||
if (role == Qt::UserRole + 1)
|
if (role == Qt::UserRole + 1)
|
||||||
return data.threadSpec;
|
return displayFromThreadSpec(data.threadSpec);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (role == Qt::ToolTipRole)
|
if (role == Qt::ToolTipRole)
|
||||||
|
|||||||
@@ -149,6 +149,9 @@ public:
|
|||||||
void notifyBreakpointAdjusted(BreakpointId id,
|
void notifyBreakpointAdjusted(BreakpointId id,
|
||||||
const BreakpointParameters &data);
|
const BreakpointParameters &data);
|
||||||
|
|
||||||
|
static QString displayFromThreadSpec(int spec);
|
||||||
|
static int threadSpecFromDisplay(const QString &str);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// QAbstractItemModel implementation.
|
// QAbstractItemModel implementation.
|
||||||
int columnCount(const QModelIndex &parent) const;
|
int columnCount(const QModelIndex &parent) const;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace Internal {
|
|||||||
|
|
||||||
BreakpointParameters::BreakpointParameters(BreakpointType t)
|
BreakpointParameters::BreakpointParameters(BreakpointType t)
|
||||||
: type(t), enabled(true), useFullPath(false),
|
: type(t), enabled(true), useFullPath(false),
|
||||||
ignoreCount(0), lineNumber(0), address(0), threadSpec(0)
|
ignoreCount(0), lineNumber(0), address(0), threadSpec(-1)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool BreakpointParameters::equals(const BreakpointParameters &rhs) const
|
bool BreakpointParameters::equals(const BreakpointParameters &rhs) const
|
||||||
|
|||||||
@@ -141,7 +141,8 @@ void BreakpointDialog::setParameters(const BreakpointParameters &data)
|
|||||||
setParts(AllParts, data);
|
setParts(AllParts, data);
|
||||||
m_ui.lineEditCondition->setText(QString::fromUtf8(data.condition));
|
m_ui.lineEditCondition->setText(QString::fromUtf8(data.condition));
|
||||||
m_ui.lineEditIgnoreCount->setText(QString::number(data.ignoreCount));
|
m_ui.lineEditIgnoreCount->setText(QString::number(data.ignoreCount));
|
||||||
m_ui.lineEditThreadSpec->setText(QString::number(data.threadSpec));
|
m_ui.lineEditThreadSpec->
|
||||||
|
setText(BreakHandler::displayFromThreadSpec(data.threadSpec));
|
||||||
}
|
}
|
||||||
|
|
||||||
BreakpointParameters BreakpointDialog::parameters() const
|
BreakpointParameters BreakpointDialog::parameters() const
|
||||||
@@ -150,7 +151,8 @@ BreakpointParameters BreakpointDialog::parameters() const
|
|||||||
getParts(AllParts, &data);
|
getParts(AllParts, &data);
|
||||||
data.condition = m_ui.lineEditCondition->text().toUtf8();
|
data.condition = m_ui.lineEditCondition->text().toUtf8();
|
||||||
data.ignoreCount = m_ui.lineEditIgnoreCount->text().toInt();
|
data.ignoreCount = m_ui.lineEditIgnoreCount->text().toInt();
|
||||||
data.threadSpec = m_ui.lineEditThreadSpec->text().toInt();
|
data.threadSpec =
|
||||||
|
BreakHandler::threadSpecFromDisplay(m_ui.lineEditThreadSpec->text());
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,7 +566,8 @@ void BreakWindow::editBreakpoints(const BreakpointIds &ids)
|
|||||||
BreakHandler *handler = breakHandler();
|
BreakHandler *handler = breakHandler();
|
||||||
const QString oldCondition = QString::fromLatin1(handler->condition(id));
|
const QString oldCondition = QString::fromLatin1(handler->condition(id));
|
||||||
const QString oldIgnoreCount = QString::number(handler->ignoreCount(id));
|
const QString oldIgnoreCount = QString::number(handler->ignoreCount(id));
|
||||||
const QString oldThreadSpec = QString::number(handler->threadSpec(id));
|
const QString oldThreadSpec =
|
||||||
|
BreakHandler::displayFromThreadSpec(handler->threadSpec(id));
|
||||||
|
|
||||||
ui.lineEditCondition->setText(oldCondition);
|
ui.lineEditCondition->setText(oldCondition);
|
||||||
ui.lineEditIgnoreCount->setText(oldIgnoreCount);
|
ui.lineEditIgnoreCount->setText(oldIgnoreCount);
|
||||||
@@ -584,7 +587,8 @@ void BreakWindow::editBreakpoints(const BreakpointIds &ids)
|
|||||||
foreach (const BreakpointId id, ids) {
|
foreach (const BreakpointId id, ids) {
|
||||||
handler->setCondition(id, newCondition.toLatin1());
|
handler->setCondition(id, newCondition.toLatin1());
|
||||||
handler->setIgnoreCount(id, newIgnoreCount.toInt());
|
handler->setIgnoreCount(id, newIgnoreCount.toInt());
|
||||||
handler->setThreadSpec(id, newThreadSpec.toInt());
|
handler->setThreadSpec(id,
|
||||||
|
BreakHandler::threadSpecFromDisplay(newThreadSpec));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ QByteArray cdbAddBreakpointCommand(const Debugger::Internal::BreakpointParameter
|
|||||||
QByteArray rc;
|
QByteArray rc;
|
||||||
ByteArrayInputStream str(rc);
|
ByteArrayInputStream str(rc);
|
||||||
|
|
||||||
if (bp.threadSpec > 0)
|
if (bp.threadSpec >= 0)
|
||||||
str << '~' << bp.threadSpec << ' ';
|
str << '~' << bp.threadSpec << ' ';
|
||||||
|
|
||||||
str << (bp.type == Debugger::Internal::Watchpoint ? "ba" : "bp");
|
str << (bp.type == Debugger::Internal::Watchpoint ? "ba" : "bp");
|
||||||
|
|||||||
@@ -2486,7 +2486,7 @@ void GdbEngine::insertBreakpoint(BreakpointId id)
|
|||||||
} else if (m_gdbVersion >= 70000) {
|
} else if (m_gdbVersion >= 70000) {
|
||||||
int spec = handler->threadSpec(id);
|
int spec = handler->threadSpec(id);
|
||||||
cmd = "-break-insert ";
|
cmd = "-break-insert ";
|
||||||
if (spec)
|
if (spec >= 0)
|
||||||
cmd += "-p " + QByteArray::number(spec);
|
cmd += "-p " + QByteArray::number(spec);
|
||||||
cmd += " -f ";
|
cmd += " -f ";
|
||||||
} else if (m_gdbVersion >= 60800) {
|
} else if (m_gdbVersion >= 60800) {
|
||||||
|
|||||||
Reference in New Issue
Block a user