diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index 32df0b3eb5438549b7956a71e19c8d930dae96a4..681f5935fc5915d8e756c4e84bef1f8b9d1b4c88 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -742,7 +742,8 @@ void BreakHandler::storeToTemplate(BreakHandler *other) { QTC_ASSERT(m_bp,/**/); foreach (BreakpointData *data, *m_bp) { - data->m_handler = other; + data->m_handler = other; + data->clear(); } m_bp = 0; diff --git a/src/plugins/debugger/breakpoint.cpp b/src/plugins/debugger/breakpoint.cpp index 0c9fc2341bd473ef558ff25bb1f73a4a158391b6..46466fa7987a40c06dc4391e59d2e8dd3ea38e74 100644 --- a/src/plugins/debugger/breakpoint.cpp +++ b/src/plugins/debugger/breakpoint.cpp @@ -205,6 +205,26 @@ BreakpointData::~BreakpointData() removeMarker(); } +void BreakpointData::clear() +{ + removeMarker(); + bpNumber.clear(); + bpCondition.clear(); + bpIgnoreCount = 0; + bpFileName.clear(); + bpFullName.clear(); + bpLineNumber = 0; + bpCorrectedLineNumber = 0; + bpThreadSpec.clear(); + bpFuncName.clear(); + bpAddress = 0; + bpMultiple = false; + bpEnabled = true; + bpState.clear(); + m_markerFileName.clear(); + m_markerLineNumber = 0; +} + void BreakpointData::removeMarker() { BreakpointMarker *m = marker; diff --git a/src/plugins/debugger/breakpoint.h b/src/plugins/debugger/breakpoint.h index e96a58bc83fd614c86a5971d87fa40fe57d6eb2f..9589fb8dc9693c0b4f60a20c92982a793de03a84 100644 --- a/src/plugins/debugger/breakpoint.h +++ b/src/plugins/debugger/breakpoint.h @@ -57,6 +57,7 @@ public: QString toToolTip() const; BreakHandler *handler() { return m_handler; } void reinsertBreakpoint(); + void clear(); // Delete all generated data. bool isLocatedAt(const QString &fileName, int lineNumber, bool useMarkerPosition) const;