The ARM/Android failure is due to libstdc++ in android-ndk-r8b not containing debug info. As a result, stack unwinding breaks in "operator new", after exactly 2 frames. I guess we can simply tweak the assert to be OK with empty stack traces when user code stack can not be unwinded.
Matching FP or SP also sounds good, and perhaps more reliable than just popping 2 frames from the top of the stack. AFAIK, the debug info issue is fixed in the latest NDK release. On Wed, Nov 21, 2012 at 2:27 AM, Richard Henderson <r...@redhat.com> wrote: > On 11/20/2012 02:14 PM, Peter Bergner wrote: >> Doesn't this save us, since the bottom frame in the backtrace will always >> be an ASAN functionand the frame we're interested in will always be higher >> in the backtrace? >> >> I guess I'm wondering, in this specific use case, do you think using >> the CFA to compare against is safe or not? > > Yes it saves us. I believe using the value of __builtin_dwarf_cfa from > the outermost ASAN function will reliably match the SP value of the > interesting user function outer of ASAN. > > > r~