The previous implementation kept a hashtable of a Backtrace object per thread. debug_backtrace_capture is supposed to store a backtrace in the passed in debug_stack_frame array, but instead overwrote the per-thread Backtrace object. This new version works more like the libunwind based capture. We hash the file and symbol names and store pointers in the debug_stack_frame struct. This way debug_backtrace_capture doesn't overwrite previous captures or allocate memory that needs to be freed. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6112>
3.8 KiB
3.8 KiB