OSDN Git Service

debugger: fix breakpoint cleanup to allow subsequent runs
authorhjk <qtc-committer@nokia.com>
Tue, 5 Oct 2010 14:05:47 +0000 (16:05 +0200)
committerhjk <qtc-committer@nokia.com>
Tue, 5 Oct 2010 14:06:41 +0000 (16:06 +0200)
Reviewed-by: Friedemann Kleint
src/plugins/debugger/breakhandler.cpp
src/plugins/debugger/breakpoint.cpp
src/plugins/debugger/breakpoint.h

index 32df0b3..681f593 100644 (file)
@@ -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;
 
index 0c9fc23..46466fa 100644 (file)
@@ -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;
index e96a58b..9589fb8 100644 (file)
@@ -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;