From 0535045139a8f39cab89477286bfd59b6da970aa Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 18 Sep 2021 02:45:04 +0000 Subject: [PATCH] 1 --- server/gameserver/tracemgr.cc | 11 ++++++----- server/gameserver/tracemgr.h | 4 ++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/server/gameserver/tracemgr.cc b/server/gameserver/tracemgr.cc index 06e3715..c045cc4 100644 --- a/server/gameserver/tracemgr.cc +++ b/server/gameserver/tracemgr.cc @@ -4,19 +4,17 @@ #ifdef DEBUG +#if __GNUC__ > 4 static void ErrorCallback(void *data, const char *msg, int errnum) { abort(); } - -static int SimpleCallback(void *data, uintptr_t pc) -{ - return 0; -} +#endif void TraceMgr::Init(const std::string& filename) { filename_ = filename; +#if __GNUC__ > 4 state_ = backtrace_create_state(filename_.c_str(), 0, ErrorCallback, @@ -24,6 +22,7 @@ void TraceMgr::Init(const std::string& filename) if (!state_) { abort(); } +#endif log_file_ = fopen("backtrace.log", "w"); if (!log_file_) { abort(); @@ -40,10 +39,12 @@ void TraceMgr::UnInit() void TraceMgr::Trace(const std::string& hint) { +#if __GNUC__ > 4 fputs(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n", log_file_); fputs(hint.c_str(), log_file_); backtrace_print(state_, 0, log_file_); fputs("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", log_file_); +#endif } #endif diff --git a/server/gameserver/tracemgr.h b/server/gameserver/tracemgr.h index a490e53..6698cba 100644 --- a/server/gameserver/tracemgr.h +++ b/server/gameserver/tracemgr.h @@ -2,7 +2,9 @@ #ifdef DEBUG +#if __GNUC__ > 4 #include +#endif class TraceMgr : public a8::Singleton { @@ -20,7 +22,9 @@ class TraceMgr : public a8::Singleton private: std::string filename_; +#if __GNUC__ > 4 backtrace_state* state_ = nullptr; +#endif FILE* log_file_ = nullptr; };