aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/wtf-bindings.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-11-12 18:30:12 -0800
committerGravatar GitHub <noreply@github.com> 2022-11-12 18:30:12 -0800
commit21bf3ddaf23c842dc12a1d76dbd3b48daf08f349 (patch)
tree06706104877984e9f083fed7c3278c9d007193cc /src/bun.js/bindings/wtf-bindings.cpp
parent514f2a8eddf1a1d35a33cc096ed7403a79afe36f (diff)
downloadbun-21bf3ddaf23c842dc12a1d76dbd3b48daf08f349.tar.gz
bun-21bf3ddaf23c842dc12a1d76dbd3b48daf08f349.tar.zst
bun-21bf3ddaf23c842dc12a1d76dbd3b48daf08f349.zip
Redo how we poll pipes (#1496)
* Fix pipe * Handle unregistered * Fix failing test
Diffstat (limited to 'src/bun.js/bindings/wtf-bindings.cpp')
-rw-r--r--src/bun.js/bindings/wtf-bindings.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/bun.js/bindings/wtf-bindings.cpp b/src/bun.js/bindings/wtf-bindings.cpp
index 78b88ad5e..699e3db5b 100644
--- a/src/bun.js/bindings/wtf-bindings.cpp
+++ b/src/bun.js/bindings/wtf-bindings.cpp
@@ -23,26 +23,26 @@ extern "C" void Bun__crashReportDumpStackTrace(void* ctx)
void* stack[framesToShow + framesToSkip];
int frames = framesToShow + framesToSkip;
WTFGetBacktrace(stack, &frames);
+ int size = frames - framesToSkip;
bool isFirst = true;
- WTF::StackTraceSymbolResolver { { stack, static_cast<size_t>(frames) } }.forEach([&](int frameNumber, void* stackFrame, const char* name) {
- if (frameNumber < framesToSkip)
- return;
-
+ for (int frameNumber = 0; frameNumber < size; ++frameNumber) {
+ auto demangled = WTF::StackTraceSymbolResolver::demangle(stack[frameNumber]);
+
StringPrintStream out;
if (isFirst) {
isFirst = false;
- if (name)
- out.printf("\n%-3d %p %s", frameNumber, stackFrame, name);
+ if (demangled)
+ out.printf("\n%-3d %p %s", frameNumber, stack[frameNumber], demangled->demangledName() ? demangled->demangledName() : demangled->mangledName());
else
- out.printf("\n%-3d %p", frameNumber, stackFrame);
+ out.printf("\n%-3d %p", frameNumber, stack[frameNumber]);
} else {
- if (name)
- out.printf("%-3d %p %s", frameNumber, stackFrame, name);
+ if (demangled)
+ out.printf("%-3d ??? %s", frameNumber, demangled->demangledName() ? demangled->demangledName() : demangled->mangledName());
else
- out.printf("%-3d %p", frameNumber, stackFrame);
+ out.printf("%-3d ???", frameNumber);
}
auto str = out.toCString();
Bun__crashReportWrite(ctx, str.data(), str.length());
- });
+ }
} \ No newline at end of file