summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorKyleMiles <krm504@nyu.edu>2022-09-22 13:43:46 -0400
committerKyleMiles <krm504@nyu.edu>2022-09-22 13:49:36 -0400
commitbdf05c261bd1c24f0440c17e10b983b50613bc20 (patch)
tree8a6ee0c5b801b60028d22bea7f31af38bd9da0eb /binaryninjaapi.h
parente95b220ef18c9dd9e1aecab32b735ff47237f9c7 (diff)
Add new DebugInfo APIs
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h28
1 files changed, 25 insertions, 3 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 752b9c52..5c04816b 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -11933,9 +11933,31 @@ namespace BinaryNinja {
public:
DebugInfo(BNDebugInfo* debugInfo);
- std::vector<NameAndType> GetTypes(const std::string& parserName = "");
- std::vector<DebugFunctionInfo> GetFunctions(const std::string& parserName = "");
- std::vector<DataVariableAndName> GetDataVariables(const std::string& parserName = "");
+ std::vector<std::string> GetParsers() const;
+
+ std::vector<NameAndType> GetTypes(const std::string& parserName = "") const;
+ std::vector<DebugFunctionInfo> GetFunctions(const std::string& parserName = "") const;
+ std::vector<DataVariableAndName> GetDataVariables(const std::string& parserName = "") const;
+
+ Ref<Type> GetTypeByName(const std::string& parserName, const std::string& name) const;
+ std::optional<std::tuple<uint64_t, Ref<Type>>> GetDataVariableByName(
+ const std::string& parserName, const std::string& name) const;
+ std::optional<std::tuple<std::string, Ref<Type>>> GetDataVariableByAddress(
+ const std::string& parserName, const uint64_t address) const;
+
+ std::vector<std::tuple<std::string, Ref<Type>>> GetTypesByName(const std::string& name) const;
+ std::vector<std::tuple<std::string, uint64_t, Ref<Type>>> GetDataVariablesByName(const std::string& name) const;
+ std::vector<std::tuple<std::string, std::string, Ref<Type>>> GetDataVariablesByAddress(
+ const uint64_t address) const;
+
+ bool RemoveParserInfo(const std::string& parserName);
+ bool RemoveParserTypes(const std::string& parserName);
+ bool RemoveParserFunctions(const std::string& parserName);
+ bool RemoveParserDataVariables(const std::string& parserName);
+
+ bool RemoveTypeByName(const std::string& parserName, const std::string& name);
+ bool RemoveFunctionByIndex(const std::string& parserName, const size_t index);
+ bool RemoveDataVariableByAddress(const std::string& parserName, const uint64_t address);
bool AddType(const std::string& name, Ref<Type> type);
bool AddFunction(const DebugFunctionInfo& function);