From c37a23621c640686772615b33efffd84ef0793f5 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Tue, 25 Oct 2022 16:42:20 -0400 Subject: Prevent applying two different debug infoes at the same time --- binaryninjaapi.h | 6 ++++++ binaryninjacore.h | 1 + binaryview.cpp | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 72b076d6..f6167129 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -3991,6 +3991,12 @@ namespace BinaryNinja { */ void SetDebugInfo(Ref newDebugInfo); + /*! Determine is a debug info object is currently being applied + + \return True if a debug info object is currently being applied + */ + bool IsApplyingDebugInfo() const; + void BeginBulkModifySymbols(); void EndBulkModifySymbols(); diff --git a/binaryninjacore.h b/binaryninjacore.h index a6c2c308..42f3d861 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -4723,6 +4723,7 @@ extern "C" BINARYNINJACOREAPI BNDebugInfo* BNGetDebugInfo(BNBinaryView* view); BINARYNINJACOREAPI void BNApplyDebugInfo(BNBinaryView* view, BNDebugInfo* newDebugInfo); BINARYNINJACOREAPI void BNSetDebugInfo(BNBinaryView* view, BNDebugInfo* newDebugInfo); + BINARYNINJACOREAPI bool BNIsApplyingDebugInfo(BNBinaryView* view); BINARYNINJACOREAPI BNSymbol* BNImportedFunctionFromImportAddressSymbol(BNSymbol* sym, uint64_t addr); diff --git a/binaryview.cpp b/binaryview.cpp index 71b3d6f0..e78333d5 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -2581,6 +2581,12 @@ void BinaryView::SetDebugInfo(Ref newDebugInfo) } +bool BinaryView::IsApplyingDebugInfo() const +{ + return BNIsApplyingDebugInfo(m_object); +} + + void BinaryView::BeginBulkModifySymbols() { BNBeginBulkModifySymbols(m_object); -- cgit v1.3.1