diff options
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 6b1d268e..15b62e25 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -8764,6 +8764,12 @@ namespace BinaryNinja { {} }; + class FieldResolutionInfo : public CoreRefCountObject<BNFieldResolutionInfo, BNNewFieldResolutionInfoReference, BNFreeFieldResolutionInfo> + { + public: + FieldResolutionInfo(BNFieldResolutionInfo* info); + }; + struct QualifiedNameAndType { QualifiedName name; @@ -9313,7 +9319,9 @@ namespace BinaryNinja { Ref<Type> WithReplacedNamedTypeReference(NamedTypeReference* from, NamedTypeReference* to); bool AddTypeMemberTokens(BinaryView* data, std::vector<InstructionTextToken>& tokens, int64_t offset, - std::vector<std::string>& nameList, size_t size = 0, bool indirect = false); + std::vector<std::string>& nameList, size_t size = 0, bool indirect = false, FieldResolutionInfo* info = nullptr); + bool EnumerateTypesForAccess(BinaryView* data, uint64_t offset, size_t size, uint8_t baseConfidence, + const std::function<void(const Confidence<Ref<Type>>& type, FieldResolutionInfo* path)>& terminal); std::vector<TypeDefinitionLine> GetLines(const TypeContainer& types, const std::string& name, int paddingCols = 64, bool collapsed = false, BNTokenEscapingType escaping = NoTokenEscapingType); @@ -11247,6 +11255,11 @@ namespace BinaryNinja { void CreateForcedVariableVersion(const Variable& var, const ArchAndAddr& location); void ClearForcedVariableVersion(const Variable& var, const ArchAndAddr& location); + void SetFieldResolutionForVariableAt(const Variable& var, const ArchAndAddr& location, FieldResolutionInfo* info); + void ClearFieldResolutionForVariableAt(const Variable& var, const ArchAndAddr& location); + Ref<FieldResolutionInfo> GetFieldResolutionForVariableAt(const Variable& var, const ArchAndAddr& location); + std::map<Variable, std::map<ArchAndAddr, Ref<FieldResolutionInfo>>> GetAllFieldResolutions(); + void RequestDebugReport(const std::string& name); /*! Get the name for a given label ID |
