aboutsummaryrefslogtreecommitdiff
path: root/src/debug.cpp
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-08-30 08:09:41 +0200
committerGitHub <noreply@github.com>2017-08-30 08:09:41 +0200
commitbd6b90359c654f4c75964755e476a8bfd90114ba (patch)
tree2c3322587dfd845efc1332feed6708b9f02a9f69 /src/debug.cpp
parent43f9e948a128606ba4d446b79999ca8718b4456a (diff)
downloadminetest-bd6b90359c654f4c75964755e476a8bfd90114ba.tar.gz
minetest-bd6b90359c654f4c75964755e476a8bfd90114ba.tar.bz2
minetest-bd6b90359c654f4c75964755e476a8bfd90114ba.zip
Remove DSTACK support (#6346)
Debugstacks is not useful, we don't really use it, the DebugStack is not pertinent, gdb and lldb are better if we really want to debug.
Diffstat (limited to 'src/debug.cpp')
-rw-r--r--src/debug.cpp133
1 files changed, 0 insertions, 133 deletions
diff --git a/src/debug.cpp b/src/debug.cpp
index bdd4146ca..1a467265c 100644
--- a/src/debug.cpp
+++ b/src/debug.cpp
@@ -56,8 +56,6 @@ void sanity_check_fn(const char *assertion, const char *file,
errorstream << file << ":" << line << ": " << function
<< ": An engine assumption '" << assertion << "' failed." << std::endl;
- debug_stacks_print_to(errorstream);
-
abort();
}
@@ -73,140 +71,9 @@ void fatal_error_fn(const char *msg, const char *file,
errorstream << file << ":" << line << ": " << function
<< ": A fatal error occured: " << msg << std::endl;
- debug_stacks_print_to(errorstream);
-
abort();
}
-/*
- DebugStack
-*/
-
-struct DebugStack
-{
- DebugStack(std::thread::id id);
- void print(FILE *file, bool everything);
- void print(std::ostream &os, bool everything);
-
- std::thread::id thread_id;
- char stack[DEBUG_STACK_SIZE][DEBUG_STACK_TEXT_SIZE];
- int stack_i; // Points to the lowest empty position
- int stack_max_i; // Highest i that was seen
-};
-
-DebugStack::DebugStack(std::thread::id id)
-{
- thread_id = id;
- stack_i = 0;
- stack_max_i = 0;
- memset(stack, 0, DEBUG_STACK_SIZE*DEBUG_STACK_TEXT_SIZE);
-}
-
-void DebugStack::print(FILE *file, bool everything)
-{
- std::ostringstream os;
- os << thread_id;
- fprintf(file, "DEBUG STACK FOR THREAD %s:\n",
- os.str().c_str());
-
- for (int i = 0; i < stack_max_i; i++) {
- if (i == stack_i && !everything)
- break;
-
- if (i < stack_i)
- fprintf(file, "#%d %s\n", i, stack[i]);
- else
- fprintf(file, "(Leftover data: #%d %s)\n", i, stack[i]);
- }
-
- if (stack_i == DEBUG_STACK_SIZE)
- fprintf(file, "Probably overflown.\n");
-}
-
-void DebugStack::print(std::ostream &os, bool everything)
-{
- os<<"DEBUG STACK FOR THREAD "<<thread_id<<": "<<std::endl;
-
- for(int i = 0; i < stack_max_i; i++) {
- if(i == stack_i && !everything)
- break;
-
- if (i < stack_i)
- os<<"#"<<i<<" "<<stack[i]<<std::endl;
- else
- os<<"(Leftover data: #"<<i<<" "<<stack[i]<<")"<<std::endl;
- }
-
- if (stack_i == DEBUG_STACK_SIZE)
- os<<"Probably overflown."<<std::endl;
-}
-
-std::map<std::thread::id, DebugStack*> g_debug_stacks;
-std::mutex g_debug_stacks_mutex;
-
-void debug_stacks_print_to(std::ostream &os)
-{
- MutexAutoLock lock(g_debug_stacks_mutex);
-
- os<<"Debug stacks:"<<std::endl;
-
- for (auto it : g_debug_stacks) {
- it.second->print(os, false);
- }
-}
-
-void debug_stacks_print()
-{
- debug_stacks_print_to(errorstream);
-}
-
-DebugStacker::DebugStacker(const char *text)
-{
- std::thread::id thread_id = std::this_thread::get_id();
-
- MutexAutoLock lock(g_debug_stacks_mutex);
-
- auto n = g_debug_stacks.find(thread_id);
- if (n != g_debug_stacks.end()) {
- m_stack = n->second;
- } else {
- /*DEBUGPRINT("Creating new debug stack for thread %x\n",
- (unsigned int)thread_id);*/
- m_stack = new DebugStack(thread_id);
- g_debug_stacks[thread_id] = m_stack;
- }
-
- if (m_stack->stack_i >= DEBUG_STACK_SIZE) {
- m_overflowed = true;
- } else {
- m_overflowed = false;
-
- snprintf(m_stack->stack[m_stack->stack_i],
- DEBUG_STACK_TEXT_SIZE, "%s", text);
- m_stack->stack_i++;
- if (m_stack->stack_i > m_stack->stack_max_i)
- m_stack->stack_max_i = m_stack->stack_i;
- }
-}
-
-DebugStacker::~DebugStacker()
-{
- MutexAutoLock lock(g_debug_stacks_mutex);
-
- if (m_overflowed)
- return;
-
- m_stack->stack_i--;
-
- if (m_stack->stack_i == 0) {
- std::thread::id thread_id = m_stack->thread_id;
- /*DEBUGPRINT("Deleting debug stack for thread %x\n",
- (unsigned int)thread_id);*/
- delete m_stack;
- g_debug_stacks.erase(thread_id);
- }
-}
-
#ifdef _MSC_VER
const char *Win32ExceptionCodeToString(DWORD exception_code)