diff options
| author | petrie911 <petrie911@yahoo.com> | 2025-05-06 07:17:13 -0500 |
|---|---|---|
| committer | Lywx <kiritodev01@gmail.com> | 2025-05-06 13:47:58 -0600 |
| commit | 8e56ea0294973b7c9f8f077a131b40fce13b8489 (patch) | |
| tree | 7fe3148ce9807c9c9fb8d1717bfd1381a0787dfa /src/Companion.cpp | |
| parent | 9c460ea54312e9cefabf155e3b83021c01862843 (diff) | |
get symbol
Diffstat (limited to 'src/Companion.cpp')
| -rw-r--r-- | src/Companion.cpp | 17 |
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) { |
