Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2012-09-11 17:11:18 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:43:15 +0300
commit1935e2b032aad52b15e7bd30820d015dd47162ce (patch)
treea6278dbe3f6926534ce12fb8b299c35589209c1c /base
parent245525501e9a59101c4d41e9288359420bf2eb10 (diff)
Add BreakIntoDebugger function.
Diffstat (limited to 'base')
-rw-r--r--base/object_tracker.cpp17
-rw-r--r--base/object_tracker.hpp2
2 files changed, 17 insertions, 2 deletions
diff --git a/base/object_tracker.cpp b/base/object_tracker.cpp
index d03c7d0ce0..bf4c4a1721 100644
--- a/base/object_tracker.cpp
+++ b/base/object_tracker.cpp
@@ -2,6 +2,10 @@
#include "assert.hpp"
#include "logging.hpp"
+#ifndef OMIM_OS_WINDOWS
+ #include <signal.h>
+#endif
+
namespace dbg
{
@@ -19,7 +23,7 @@ void ObjectTracker::Add(void * p)
threads::MutexGuard guard(m_mutex);
#endif
- CHECK ( m_map.insert(make_pair(p, m_counter++)).second == true, () );
+ CHECK ( m_map.insert(make_pair(p, m_counter++)).second == true, (p) );
}
void ObjectTracker::Remove(void * p)
@@ -28,7 +32,7 @@ void ObjectTracker::Remove(void * p)
threads::MutexGuard guard(m_mutex);
#endif
- CHECK ( m_map.erase(p) == 1, () );
+ CHECK ( m_map.erase(p) == 1, (p) );
}
ObjectTracker::ObjectTracker()
@@ -58,4 +62,13 @@ void ObjectTracker::PrintLeaks()
LOG(LINFO, ("Leaks map:", m_map));
}
+void BreakIntoDebugger()
+{
+#ifdef OMIM_OS_WINDOWS
+ __debugbreak();
+#else
+ kill(getpid(), SIGINT);
+#endif
+}
+
}
diff --git a/base/object_tracker.hpp b/base/object_tracker.hpp
index c2fbe91ae5..f38f4dd705 100644
--- a/base/object_tracker.hpp
+++ b/base/object_tracker.hpp
@@ -30,4 +30,6 @@ namespace dbg
static void PrintLeaks();
};
+
+ void BreakIntoDebugger();
}