summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-07-28 20:56:05 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2025-08-01 14:35:04 -0400
commit8df034ed6b3a1a52bd268ed43e783c35b687408f (patch)
treecaa89977dfffe302514489b96b6cda1765f0af2b /binaryninjacore.h
parent1b2f5c4c8df34d399a8abaff7db5d2338cb90ac1 (diff)
Add LogForException APIs to pass stack trace information separate from the message
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h34
1 files changed, 32 insertions, 2 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 01b1c178..b7f9e63a 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 127
+#define BN_CURRENT_CORE_ABI_VERSION 128
// 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 124
+#define BN_MINIMUM_CORE_ABI_VERSION 128
#ifdef __GNUC__
#ifdef BINARYNINJACORE_LIBRARY
@@ -1560,6 +1560,8 @@ extern "C"
{
void* context;
void (*log)(void* ctxt, size_t sessionId, BNLogLevel level, const char* msg, const char* logger_name, size_t tid);
+ void (*logWithStackTrace)(void* ctxt, size_t sessionId, BNLogLevel level, const char* stackTrace,
+ const char* msg, const char* logger_name, size_t tid);
void (*close)(void* ctxt);
BNLogLevel (*getLogLevel)(void* ctxt);
} BNLogListener;
@@ -3869,6 +3871,28 @@ extern "C"
BINARYNINJACOREAPI void BNLogString(
size_t session, BNLogLevel level, const char* logger_name, size_t tid, const char* str);
+ BN_PRINTF_ATTRIBUTE(6, 7)
+ BINARYNINJACOREAPI void BNLogWithStackTrace(size_t session, BNLogLevel level, const char* logger_name, size_t tid,
+ const char* stackTrace, const char* fmt, ...);
+
+ BN_PRINTF_ATTRIBUTE(2, 3)
+ BINARYNINJACOREAPI void BNLogDebugWithStackTrace(const char* stackTrace, const char* fmt, ...);
+
+ BN_PRINTF_ATTRIBUTE(2, 3)
+ BINARYNINJACOREAPI void BNLogInfoWithStackTrace(const char* stackTrace, const char* fmt, ...);
+
+ BN_PRINTF_ATTRIBUTE(2, 3)
+ BINARYNINJACOREAPI void BNLogWarnWithStackTrace(const char* stackTrace, const char* fmt, ...);
+
+ BN_PRINTF_ATTRIBUTE(2, 3)
+ BINARYNINJACOREAPI void BNLogErrorWithStackTrace(const char* stackTrace, const char* fmt, ...);
+
+ BN_PRINTF_ATTRIBUTE(2, 3)
+ BINARYNINJACOREAPI void BNLogAlertWithStackTrace(const char* stackTrace, const char* fmt, ...);
+
+ BINARYNINJACOREAPI void BNLogStringWithStackTrace(
+ size_t session, BNLogLevel level, const char* logger_name, size_t tid, const char* stackTrace, const char* str);
+
BINARYNINJACOREAPI BNLogger* BNNewLoggerReference(BNLogger* logger);
BINARYNINJACOREAPI void BNFreeLogger(BNLogger* logger);
@@ -3877,6 +3901,12 @@ extern "C"
BINARYNINJACOREAPI void BNLoggerLog(BNLogger* logger, BNLogLevel level, const char* fmt, ...);
BINARYNINJACOREAPI void BNLoggerLogString(BNLogger* logger, BNLogLevel level, const char* msg);
+ BN_PRINTF_ATTRIBUTE(4, 5)
+ BINARYNINJACOREAPI void BNLoggerLogWithStackTrace(
+ BNLogger* logger, BNLogLevel level, const char* stackTrace, const char* fmt, ...);
+ BINARYNINJACOREAPI void BNLoggerLogStringWithStackTrace(
+ BNLogger* logger, BNLogLevel level, const char* stackTrace, const char* msg);
+
BINARYNINJACOREAPI char* BNLoggerGetName(BNLogger* logger);
BINARYNINJACOREAPI size_t BNLoggerGetSessionId(BNLogger* logger);
BINARYNINJACOREAPI void BNLoggerIndent(BNLogger* logger);