diff options
| -rw-r--r-- | binaryninjaapi.h | 36 | ||||
| -rw-r--r-- | binaryninjacore.h | 8 | ||||
| -rw-r--r-- | demangler/msvc/demangle_msvc.cpp | 52 | ||||
| -rw-r--r-- | log.cpp | 73 |
4 files changed, 49 insertions, 120 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index b8dde5cd..d3de5874 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -1870,24 +1870,6 @@ namespace BinaryNinja { \return The logger session ID */ size_t GetSessionId(); - - /*! Indent the logger's indentation level by one - */ - void Indent(); - - /*! Decrease the logger's indentation level by one - */ - void Dedent(); - - /*! Set the logger's indentation level to zero - */ - void ResetIndent(); - - /*! Get the string to prepend to log messages to indent them - - \return Indentation string - */ - std::string GetIndent() const; }; /*! A class allowing registering and retrieving Loggers @@ -1948,24 +1930,6 @@ namespace BinaryNinja { static std::vector<std::string> GetLoggerNames(); }; - /*! RAII helper that indents/dedents a Logger inside a scope - \ingroup logging - */ - class LoggerIndentScope - { - Ref<Logger> m_logger; - - public: - LoggerIndentScope(Ref<Logger> logger): m_logger(logger) - { - m_logger->Indent(); - } - ~LoggerIndentScope() - { - m_logger->Dedent(); - } - }; - /*! @addtogroup coreapi @{ diff --git a/binaryninjacore.h b/binaryninjacore.h index 0ba01542..305fc713 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -37,14 +37,14 @@ // Current ABI version for linking to the core. This is incremented any time // there are changes to the API that affect linking, including new functions, // new types, or modifications to existing functions or types. -#define BN_CURRENT_CORE_ABI_VERSION 145 +#define BN_CURRENT_CORE_ABI_VERSION 146 // Minimum ABI version that is supported for loading of plugins. Plugins that // are linked to an ABI version less than this will not be able to load and // will require rebuilding. The minimum version is increased when there are // incompatible changes that break binary compatibility, such as changes to // existing types or functions. -#define BN_MINIMUM_CORE_ABI_VERSION 141 +#define BN_MINIMUM_CORE_ABI_VERSION 146 #ifdef __GNUC__ #ifdef BINARYNINJACORE_LIBRARY @@ -4031,10 +4031,6 @@ extern "C" BINARYNINJACOREAPI char* BNLoggerGetName(BNLogger* logger); BINARYNINJACOREAPI size_t BNLoggerGetSessionId(BNLogger* logger); - BINARYNINJACOREAPI void BNLoggerIndent(BNLogger* logger); - BINARYNINJACOREAPI void BNLoggerDedent(BNLogger* logger); - BINARYNINJACOREAPI void BNLoggerResetIndent(BNLogger* logger); - BINARYNINJACOREAPI char* BNGetLoggerIndent(BNLogger* logger); BINARYNINJACOREAPI BNLogger* BNLogCreateLogger(const char* loggerName, size_t sessionId); BINARYNINJACOREAPI BNLogger* BNLogGetLogger(const char* loggerName, size_t sessionId); BINARYNINJACOREAPI char** BNLogGetLoggerNames(size_t* count); diff --git a/demangler/msvc/demangle_msvc.cpp b/demangler/msvc/demangle_msvc.cpp index c82d816a..cabee544 100644 --- a/demangler/msvc/demangle_msvc.cpp +++ b/demangler/msvc/demangle_msvc.cpp @@ -162,7 +162,7 @@ Demangle::Demangle(Architecture* arch, string mangledName) : m_view(nullptr) { m_logger = LogRegistry::CreateLogger("MSVCDemangle"); - m_logger->ResetIndent(); + //m_logger->ResetIndent(); } @@ -173,7 +173,7 @@ Demangle::Demangle(Ref<Platform> platform, string mangledName) : m_view(nullptr) { m_logger = LogRegistry::CreateLogger("MSVCDemangle"); - m_logger->ResetIndent(); + //m_logger->ResetIndent(); } @@ -186,7 +186,7 @@ Demangle::Demangle(Ref<BinaryView> view, string mangledName) : throw DemangleException(); m_arch = m_platform->GetArchitecture(); m_logger = LogRegistry::CreateLogger("MSVCDemangle"); - m_logger->ResetIndent(); + //m_logger->ResetIndent(); } @@ -293,9 +293,9 @@ TypeBuilder Demangle::DemangleVarType(BackrefList& varList, bool isReturn, Quali case 'O': { QualifiedName name; - m_logger->Indent(); + //m_logger->Indent(); auto childType = DemangleVarType(varList, false, name); - m_logger->Dedent(); + //m_logger->Dedent(); newType = TypeBuilder::ArrayType(childType.Finalize(), 0); break; } @@ -340,9 +340,9 @@ TypeBuilder Demangle::DemangleVarType(BackrefList& varList, bool isReturn, Quali reader.Consume(2); DemangleModifiers(_const, _volatile, isMember); QualifiedName name; - m_logger->Indent(); + //m_logger->Indent(); newType = DemangleVarType(varList, false, name); - m_logger->Dedent(); + //m_logger->Dedent(); newType.SetConst(_const); newType.SetVolatile(_volatile); return newType; @@ -467,9 +467,9 @@ TypeBuilder Demangle::DemangleVarType(BackrefList& varList, bool isReturn, Quali elementList.push_back(element); } QualifiedName name; - m_logger->Indent(); + //m_logger->Indent(); child = DemangleVarType(varList, false, name); - m_logger->Dedent(); + //m_logger->Dedent(); for (auto i = elementList.rbegin(); i != elementList.rend(); i++) { @@ -479,9 +479,9 @@ TypeBuilder Demangle::DemangleVarType(BackrefList& varList, bool isReturn, Quali else { QualifiedName name; - m_logger->Indent(); + //m_logger->Indent(); child = DemangleVarType(varList, true, name); - m_logger->Dedent(); + //m_logger->Dedent(); } child.SetConst(_const2); @@ -501,17 +501,17 @@ TypeBuilder Demangle::DemangleVarType(BackrefList& varList, bool isReturn, Quali } case EnumerationTypeClass: m_logger->LogDebug("Demangle enumeration\n"); - m_logger->Indent(); + //m_logger->Indent(); DemangleName(typeName, classFunctionType, varList); - m_logger->Dedent(); + //m_logger->Dedent(); newType = TypeBuilder::NamedType(NamedTypeReference::GenerateAutoDemangledTypeReference(EnumNamedTypeClass, typeName), width, width); break; case StructureTypeClass: m_logger->LogDebug("Demangle structure\n"); - m_logger->Indent(); + //m_logger->Indent(); DemangleName(typeName, classFunctionType, varList); - m_logger->Dedent(); + //m_logger->Dedent(); switch (structType) { case ClassStructureType: @@ -721,9 +721,9 @@ void Demangle::DemangleVariableList(vector<FunctionParameter>& paramList, Backre FunctionParameter vt; QualifiedName name; m_logger->LogDebug("Argument %d: %s", i, reader.GetRaw()); - m_logger->Indent(); + //m_logger->Indent(); TypeBuilder type = DemangleVarType(varList, false, name); - m_logger->Dedent(); + //m_logger->Dedent(); if (hasModifiers) { type.SetConst(_const); @@ -820,9 +820,9 @@ void Demangle::DemangleNameTypeRtti(BNNameType& classFunctionType, DemangleModifiers(_const, _volatile, isMember); QualifiedName name; - m_logger->Indent(); + //m_logger->Indent(); rtti = DemangleVarType(nameBackrefList, false, name); - m_logger->Dedent(); + //m_logger->Dedent(); rtti.SetConst(_const); rtti.SetVolatile(_volatile); rtti.SetPointerSuffix(suffix); @@ -991,9 +991,9 @@ string Demangle::DemangleTemplateInstantiationName(BackrefList& nameBackrefList) string Demangle::DemangleTemplateParams(vector<FunctionParameter>& params, BackrefList& nameBackrefList, string& out) { - m_logger->Indent(); + //m_logger->Indent(); DemangleVariableList(params, nameBackrefList); - m_logger->Dedent(); + //m_logger->Dedent(); m_logger->LogDebug("VariableList done\n"); out += "<"; for (size_t i = 0; i < params.size(); i++) @@ -1564,10 +1564,10 @@ TypeBuilder Demangle::DemangleFunction(BNNameType classFunctionType, bool pointe QualifiedName name; m_logger->LogDebug("Demangle function return type %s", reader.GetRaw()); - m_logger->Indent(); + //m_logger->Indent(); returnType = DemangleVarType(nameBackrefList, true, name); m_logger->LogDebug("Return type: %s", returnType.GetString().c_str()); - m_logger->Dedent(); + //m_logger->Dedent(); if (hasModifiers) { returnType.SetConst(return_const); @@ -1641,9 +1641,9 @@ TypeBuilder Demangle::DemangleData() m_logger->LogDebug("%s: '%s'\n", __FUNCTION__, reader.GetRaw()); bool _const = false, _volatile = false, isMember = false; QualifiedName name; - m_logger->Indent(); + //m_logger->Indent(); TypeBuilder newType = DemangleVarType(m_backrefList, false, name); - m_logger->Dedent(); + //m_logger->Dedent(); auto suffix = DemanglePointerSuffix(); DemangleModifiers(_const, _volatile, isMember); newType.SetConst(_const); @@ -1701,7 +1701,7 @@ TypeBuilder Demangle::DemangleVTable() Demangle::DemangleContext Demangle::DemangleSymbol() { m_logger->LogDebug("%s: '%s'\n", __FUNCTION__, reader.GetRaw()); - m_logger->Indent(); + //m_logger->Indent(); BNNameType classFunctionType = NoNameType; QualifiedName varName; @@ -486,7 +486,7 @@ void Logger::Log(BNLogLevel level, const char* fmt, ...) { va_list args; va_start(args, fmt); - PerformLog(GetSessionId(), level, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + PerformLog(GetSessionId(), level, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -496,7 +496,7 @@ void Logger::LogTrace(const char* fmt, ...) #ifdef BN_ENABLE_LOG_TRACE va_list args; va_start(args, fmt); - PerformLog(GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + PerformLog(GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt, args); va_end(args); #endif } @@ -506,7 +506,7 @@ void Logger::LogDebug(const char* fmt, ...) { va_list args; va_start(args, fmt); - PerformLog(GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + PerformLog(GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -515,7 +515,7 @@ void Logger::LogInfo(const char* fmt, ...) { va_list args; va_start(args, fmt); - PerformLog(GetSessionId(), InfoLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + PerformLog(GetSessionId(), InfoLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -524,7 +524,7 @@ void Logger::LogWarn(const char* fmt, ...) { va_list args; va_start(args, fmt); - PerformLog(GetSessionId(), WarningLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + PerformLog(GetSessionId(), WarningLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -533,7 +533,7 @@ void Logger::LogError(const char* fmt, ...) { va_list args; va_start(args, fmt); - PerformLog(GetSessionId(), ErrorLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + PerformLog(GetSessionId(), ErrorLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -542,7 +542,7 @@ void Logger::LogAlert(const char* fmt, ...) { va_list args; va_start(args, fmt); - PerformLog(GetSessionId(), AlertLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + PerformLog(GetSessionId(), AlertLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -552,7 +552,7 @@ void Logger::LogForException(BNLogLevel level, const std::exception& e, const ch va_list args; va_start(args, fmt); PerformLogForException( - GetSessionId(), level, GetName(), GetThreadId(), e, fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), level, GetName(), GetThreadId(), e, fmt, args); va_end(args); } @@ -563,7 +563,7 @@ void Logger::LogTraceForException(const std::exception& e, const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogForException( - GetSessionId(), DebugLog, GetName(), GetThreadId(), e, fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), DebugLog, GetName(), GetThreadId(), e, fmt, args); va_end(args); #endif } @@ -574,7 +574,7 @@ void Logger::LogDebugForException(const std::exception& e, const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogForException( - GetSessionId(), DebugLog, GetName(), GetThreadId(), e, fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), DebugLog, GetName(), GetThreadId(), e, fmt, args); va_end(args); } @@ -584,7 +584,7 @@ void Logger::LogInfoForException(const std::exception& e, const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogForException( - GetSessionId(), InfoLog, GetName(), GetThreadId(), e, fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), InfoLog, GetName(), GetThreadId(), e, fmt, args); va_end(args); } @@ -594,7 +594,7 @@ void Logger::LogWarnForException(const std::exception& e, const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogForException( - GetSessionId(), WarningLog, GetName(), GetThreadId(), e, fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), WarningLog, GetName(), GetThreadId(), e, fmt, args); va_end(args); } @@ -604,7 +604,7 @@ void Logger::LogErrorForException(const std::exception& e, const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogForException( - GetSessionId(), ErrorLog, GetName(), GetThreadId(), e, fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), ErrorLog, GetName(), GetThreadId(), e, fmt, args); va_end(args); } @@ -614,7 +614,7 @@ void Logger::LogAlertForException(const std::exception& e, const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogForException( - GetSessionId(), AlertLog, GetName(), GetThreadId(), e, fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), AlertLog, GetName(), GetThreadId(), e, fmt, args); va_end(args); } @@ -624,7 +624,7 @@ void Logger::LogWithStackTrace(BNLogLevel level, const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogWithStackTrace( - GetSessionId(), level, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), level, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -635,7 +635,7 @@ void Logger::LogTraceWithStackTrace(const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogWithStackTrace( - GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt, args); va_end(args); #endif } @@ -646,7 +646,7 @@ void Logger::LogDebugWithStackTrace(const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogWithStackTrace( - GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), DebugLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -656,7 +656,7 @@ void Logger::LogInfoWithStackTrace(const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogWithStackTrace( - GetSessionId(), InfoLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), InfoLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -666,7 +666,7 @@ void Logger::LogWarnWithStackTrace(const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogWithStackTrace( - GetSessionId(), WarningLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), WarningLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -676,7 +676,7 @@ void Logger::LogErrorWithStackTrace(const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogWithStackTrace( - GetSessionId(), ErrorLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), ErrorLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -686,7 +686,7 @@ void Logger::LogAlertWithStackTrace(const char* fmt, ...) va_list args; va_start(args, fmt); PerformLogWithStackTrace( - GetSessionId(), AlertLog, GetName(), GetThreadId(), fmt::format("{}{}", GetIndent(), fmt).c_str(), args); + GetSessionId(), AlertLog, GetName(), GetThreadId(), fmt, args); va_end(args); } @@ -749,37 +749,6 @@ size_t Logger::GetSessionId() } -void Logger::Indent() -{ - BNLoggerIndent(m_object); -} - - -void Logger::Dedent() -{ - BNLoggerDedent(m_object); -} - - -void Logger::ResetIndent() -{ - BNLoggerResetIndent(m_object); -} - - -string Logger::GetIndent() const -{ - char* indent = BNGetLoggerIndent(m_object); - if (!indent) - { - return ""; - } - string result = indent; - BNFreeString(indent); - return result; -} - - Ref<Logger> LogRegistry::CreateLogger(const std::string& loggerName, size_t sessionId) { return new Logger(BNLogCreateLogger(loggerName.c_str(), sessionId)); |
