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 +#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(); }