Closed
Description
In the Swift version of Tracer, which is not used in production yet, there are some calls to functions that are not async signal safe like dladdr
as well as heap allocations. The function getCallStack should be reentrant to avoid deadlocks:
The symbolication step should happen after threads are resumed, and we need to be careful not to allocate any memory on the heap while a thread is suspended, probably that portion of code should be in C since allocations can't be guaranteed to be avoided in Swift
Metadata
Metadata
Assignees
Labels
No labels