fmayer added a comment. In D103562#3702962 <https://reviews.llvm.org/D103562#3702962>, @smd wrote:
> Hi folks, > > I've been working on support hwasan for risc-v and I believe I've found an > issue with the existing lit tests this commit causes. > Tests stack-{oob,uar,uas}.c check for correct backtrace being printed. From > the code and comments the idea is to not to print any hwasan related > frames(see the code and comments below). > > void HandleTagMismatch(AccessInfo ai, uptr pc, uptr frame, void *uc, > > uptr *registers_frame) { > > InternalMmapVector<BufferedStackTrace> stack_buffer(1); > > BufferedStackTrace *stack = stack_buffer.data(); > > stack->Reset(); > > stack->Unwind(pc, frame, uc, common_flags()->fast_unwind_on_fatal); > > > > // The second stack frame contains the failure __hwasan_check function, > as > // we have a stack frame for the registers saved in __hwasan_tag_mismatch > that > // we wish to ignore. This (currently) only occurs on AArch64, as x64 > > // implementations use SIGTRAP to implement the failure, and thus do not > go > // through the stack saver. > > if (registers_frame && stack->trace && stack->size > 0) { > > stack->trace++; > > stack->size--; > > } > > Before this commit the return address and frame pointer to were taken > directly from **hwasan_tag_mismatch4**, while after the commit those > addresses are calculated after another function being called from > hwasan_tag_mismatch4 (the **HwasanTagMismatch** one). > So, if I understand it correctly, now it looks like 2 stack frames must be > ignored(for **hwasan_tag_mismatch4** and **HwasanTagMismatch**) to get a > proper backtrace. > What do you think? > > Thanks Yes, but I am not sure we can *rely* on that being the case as is. LTO could conceivably inline this – in which case it would be one, right? ================ Comment at: compiler-rt/lib/hwasan/hwasan.cpp:205 + if (registers_frame && stack->trace && stack->size > 0) { + stack->trace++; + stack->size--; ---------------- vitalybuka wrote: > maybe we should pop everything up to "pc" to avoid issues with nested calls? > > For most users hwasan frames are not very useful. However if you work on > sanitizer, some frames can be a useful info. So I don't mind we just relax > test cases to accommodate this nesting. > > cc @smd This is probably for another patch though, right? This is already like this on the LHS. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D103562/new/ https://reviews.llvm.org/D103562 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits