summaryrefslogtreecommitdiffstats
path: root/yql/essentials/utils/backtrace/symbolize.cpp
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-06 11:26:09 +0300
committervvvv <[email protected]>2025-10-06 11:53:26 +0300
commit60f45e69a4d7dbc6131208e16c45faf35aa5a985 (patch)
tree4daa45b52c295a178c7620e4c93921465fcf7950 /yql/essentials/utils/backtrace/symbolize.cpp
parent1bded1a65a7e6e9171418f3e1c691d390125b64e (diff)
YQL-20086 utils
init commit_hash:54feccd520ebd0ab23612bc0cb830914dff9d0e8
Diffstat (limited to 'yql/essentials/utils/backtrace/symbolize.cpp')
-rw-r--r--yql/essentials/utils/backtrace/symbolize.cpp88
1 files changed, 44 insertions, 44 deletions
diff --git a/yql/essentials/utils/backtrace/symbolize.cpp b/yql/essentials/utils/backtrace/symbolize.cpp
index 360ff408c7d..e96c0a313dd 100644
--- a/yql/essentials/utils/backtrace/symbolize.cpp
+++ b/yql/essentials/utils/backtrace/symbolize.cpp
@@ -7,56 +7,56 @@
namespace NYql {
- namespace NBacktrace {
- TString Symbolize(const TString& input, const THashMap<TString, TString>& mapping) {
+namespace NBacktrace {
+TString Symbolize(const TString& input, const THashMap<TString, TString>& mapping) {
#if defined(__linux__) && defined(__x86_64__)
- TString output;
- TStringOutput out(output);
-
- i64 stackSize = -1;
- TVector<TStackFrame> frames;
- TVector<TString> usedFilenames;
- for (TStringBuf line: StringSplitter(input).SplitByString("\n")) {
- if (line.StartsWith("StackFrames:")) {
- TVector<TString> parts;
- Split(TString(line), " ", parts);
- if (parts.size() > 1) {
- TryFromString<i64>(parts[1], stackSize);
- frames.reserve(stackSize);
- }
- } else if (line.StartsWith("StackFrame:")) {
- TVector<TString> parts;
- Split(TString(line), " ", parts);
- TString modulePath;
- ui64 address;
- ui64 offset;
- if (parts.size() > 3) {
- modulePath = parts[1];
- TryFromString<ui64>(parts[2], address);
- TryFromString<ui64>(parts[3], offset);
- auto it = mapping.find(modulePath);
- if (it != mapping.end()) {
- modulePath = it->second;
- }
- usedFilenames.emplace_back(std::move(modulePath));
- frames.emplace_back(TStackFrame{usedFilenames.back().c_str(), address - offset});
- }
- } else {
- out << line << "\n";
+ TString output;
+ TStringOutput out(output);
+
+ i64 stackSize = -1;
+ TVector<TStackFrame> frames;
+ TVector<TString> usedFilenames;
+ for (TStringBuf line : StringSplitter(input).SplitByString("\n")) {
+ if (line.StartsWith("StackFrames:")) {
+ TVector<TString> parts;
+ Split(TString(line), " ", parts);
+ if (parts.size() > 1) {
+ TryFromString<i64>(parts[1], stackSize);
+ frames.reserve(stackSize);
+ }
+ } else if (line.StartsWith("StackFrame:")) {
+ TVector<TString> parts;
+ Split(TString(line), " ", parts);
+ TString modulePath;
+ ui64 address;
+ ui64 offset;
+ if (parts.size() > 3) {
+ modulePath = parts[1];
+ TryFromString<ui64>(parts[2], address);
+ TryFromString<ui64>(parts[3], offset);
+ auto it = mapping.find(modulePath);
+ if (it != mapping.end()) {
+ modulePath = it->second;
}
+ usedFilenames.emplace_back(std::move(modulePath));
+ frames.emplace_back(TStackFrame{usedFilenames.back().c_str(), address - offset});
}
+ } else {
+ out << line << "\n";
+ }
+ }
- if (stackSize == 0) {
- out << "Empty stack trace\n";
- }
- Symbolize(frames.data(), frames.size(), &out);
- return output;
+ if (stackSize == 0) {
+ out << "Empty stack trace\n";
+ }
+ Symbolize(frames.data(), frames.size(), &out);
+ return output;
#else
- Y_UNUSED(mapping);
- return input;
+ Y_UNUSED(mapping);
+ return input;
#endif
- }
+}
- } /* namespace NBacktrace */
+} /* namespace NBacktrace */
} /* namespace NYql */