ASan currently has only __asan_describe_address as a debugging API, which prints out a report in textual form only. This patch is part of an effort to implement a more generic debugging API, as proposed in http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074656.html.
It adds 1) asan_get_alloc_stack and asan_get_free_stack, which can return a stack trace and thread ID for the allocation or free of a specified heap memory address and 2) __asan_get_shadow_mapping which just returns the current scale and offset for the shadow memory mapping.
The idea is that this would allow an LLDB script (or even calling the functions manually) to query various memory addresses and get their malloc/free stack traces and relevant shadow memory addresses. We could then use LLDB's backtrace formatting to show more consistently formatted information (and use LLDB's symbolication) and even do things like "frame select". The __asan_get_shadow_mapping API can be used to create macros like MemToShadow/ShadowToMem in LLDB and we could even have something like "x --shadow 0x100000000" in LLDB to show the relevant shadow memory alongside with the memory contents.
Does your interface need top_frame_bp?
Also, maybe change it like this?
// Store up to 'size' frames into 'trace', return the number of stored frames or 0 on error.
/...
uptr __asan_get_alloc_stack(void *addr, void **trace, size_t size, int *thread)