summaryrefslogtreecommitdiff
path: root/src/Companion.cpp
diff options
context:
space:
mode:
authorpetrie911 <petrie911@yahoo.com>2025-05-06 07:17:13 -0500
committerLywx <kiritodev01@gmail.com>2025-05-06 13:47:58 -0600
commit8e56ea0294973b7c9f8f077a131b40fce13b8489 (patch)
tree7fe3148ce9807c9c9fb8d1717bfd1381a0787dfa /src/Companion.cpp
parent9c460ea54312e9cefabf155e3b83021c01862843 (diff)
get symbol
Diffstat (limited to 'src/Companion.cpp')
-rw-r--r--src/Companion.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp
index 1864236..91f84bb 100644
--- a/src/Companion.cpp
+++ b/src/Companion.cpp
@@ -1433,6 +1433,23 @@ std::optional<std::tuple<std::string, YAML::Node>> Companion::GetSafeNodeByAddr(
}
+std::string Companion::GetSymbolFromAddr(uint32_t address, bool validZero) {
+ auto dec = Companion::Instance->GetNodeByAddr(address);
+ std::ostringstream outSymbol;
+
+ if(address == 0 && !validZero) {
+ outSymbol << "NULL";
+ } else if (dec.has_value()) {
+ auto node = std::get<1>(dec.value());
+ auto symbol = GetSafeNode<std::string>(node, "symbol");
+ outSymbol << "&" << symbol;
+ } else {
+ outSymbol << "0x" << std::uppercase << std::hex << address;
+ }
+
+ return outSymbol.str();
+}
+
std::optional<ParseResultData> Companion::GetParseDataByAddr(uint32_t addr) {
if(!this->gParseResults.contains(this->gCurrentFile)){
for (auto &file : this->gCurrentExternalFiles) {