gallium/android: Rewrite backtrace helper for android
authorKristian H. Kristensen <hoegsberg@google.com>
Wed, 29 Jul 2020 04:24:45 +0000 (21:24 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 5 Aug 2020 18:08:06 +0000 (18:08 +0000)
commit5ae7098ebab1d15fa903d8888a1a73058e5976ff
tree8efd989fb8fdb828587e40e242dd67aaf2239548
parentd0d14f3f6481e015b4413fa0487164b76fe45296
gallium/android: Rewrite backtrace helper for android

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>
src/util/u_debug_stack.h
src/util/u_debug_stack_android.cpp