#pragma once #include #ifdef DEBUG #if __GNUC__ > 4 #include #endif class TraceMgr : public a8::Singleton { private: TraceMgr() {}; friend class a8::Singleton; public: void Init(const std::string& filename); void UnInit(); void Trace(const std::string& hint); std::string GetBackTrace(); private: std::string filename_; #if __GNUC__ > 4 backtrace_state* state_ = nullptr; #endif FILE* log_file_ = nullptr; }; #endif