macOS: Segfault just after connecting from Tracy profiler
Closed this issue · 3 comments
superdump commented
tracing-tracy 0.3.0, macOS, Tracy 0.7.3.
Just after connecting to my tracing-tracy instrumented application from the Tracy profiler UI tool, my application segfaults. Here is the backtrace:
tracy::_memory_allocate(tracy::heap_t*, unsigned long) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/client/tracy_rpmalloc.cpp:0)
tracy::rpmalloc(unsigned long) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/client/tracy_rpmalloc.cpp:2135)
tracy::backtrace_alloc(tracy::backtrace_state*, unsigned long, void (*)(void*, char const*, int), void*) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/libbacktrace/alloc.cpp:62)
tracy::macho_add_dsym(tracy::backtrace_state*, char const*, unsigned long, unsigned char const*, void (*)(void*, char const*, int), void*, int (**)(tracy::backtrace_state*, unsigned long, int (*)(void*, unsigned long, unsigned long, char const*, int, char const*), void (*)(void*, char const*, int), void*)) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/libbacktrace/macho.cpp:878)
tracy::macho_add(tracy::backtrace_state*, char const*, int, long long, unsigned char const*, unsigned long, int, void (*)(void*, char const*, int), void*, int (**)(tracy::backtrace_state*, unsigned long, int (*)(void*, unsigned long, unsigned long, char const*, int, char const*), void (*)(void*, char const*, int), void*), int*) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/libbacktrace/macho.cpp:1161)
tracy::backtrace_initialize(tracy::backtrace_state*, char const*, int, void (*)(void*, char const*, int), void*, int (**)(tracy::backtrace_state*, unsigned long, int (*)(void*, unsigned long, unsigned long, char const*, int, char const*), void (*)(void*, char const*, int), void*)) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/libbacktrace/macho.cpp:1226)
tracy::fileline_initialize(tracy::backtrace_state*, void (*)(void*, char const*, int), void*) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/libbacktrace/fileline.cpp:245)
tracy::backtrace_pcinfo(tracy::backtrace_state*, unsigned long, int (*)(void*, unsigned long, unsigned long, char const*, int, char const*), void (*)(void*, char const*, int), void*) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/libbacktrace/fileline.cpp:279)
tracy::DecodeCallstackPtr(unsigned long long) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/client/TracyCallstack.cpp:601)
tracy::Profiler::SendCallstackFrame(unsigned long long) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/client/TracyProfiler.cpp:2424)
tracy::Profiler::HandleServerQuery() (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/client/TracyProfiler.cpp:2495)
tracy::Profiler::Worker() (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/client/TracyProfiler.cpp:1537)
tracy::Thread::Launch(void*) (/Users/robswain/.cargo/registry/src/github.com-1ecc6299db9ec823/tracy-client-sys-0.10.0/tracy/client/TracyThread.hpp:75)
_pthread_start (@_pthread_start:42)
thread_start (@thread_start:8)
nagisa commented
Please report this against Tracy itself. This kind of issue been seen when the tracy profiler operates without TLS being initialized. We strive to force such initialization for function calls that are wrapped by tracy-client
and tracy-client-sys
, but in this particular case it seems like this is a thread that's entirely internal to tracy itself, so I cannot really do much about it.
superdump commented
Ok, thanks.