On Thu, Dec 08, 2022 at 05:56:41PM -0500, Marek Polacek wrote: > Can't hurt. Here's an updated patch. > > -- >8 -- > I got a complaint that while Clang docs suggest options that improve > the quality of the backtraces ASAN prints (cf. > <https://clang.llvm.org/docs/AddressSanitizer.html#usage>), our docs > don't say anything to that effect. This patch amends that with a new > paragraph. (It deliberately doesn't mention -fno-omit-frame-pointer.) > > gcc/ChangeLog: > > * doc/invoke.texi (-fsanitize=address): Suggest options to improve > stack traces.
Ok, thanks. > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index 726392409b6..3f2512ce16a 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -16510,6 +16510,16 @@ The option cannot be combined with > @option{-fsanitize=thread} or > @option{-fsanitize=hwaddress}. Note that the only target > @option{-fsanitize=hwaddress} is currently supported on is AArch64. > > +To get more accurate stack traces, it is possible to use options such as > +@option{-O0}, @option{-O1}, or @option{-Og} (which, for instance, prevent > +most function inlining), @option{-fno-optimize-sibling-calls} (which prevents > +optimizing sibling and tail recursive calls; this option is implicit for > +@option{-O0}, @option{-O1}, or @option{-Og}), or @option{-fno-ipa-icf} (which > +disables Identical Code Folding for functions). Since multiple runs of the > +program may yield backtraces with different addresses due to ASLR (Address > +Space Layout Randomization), it may be desirable to turn ASLR off. On Linux, > +this can be achieved with @samp{setarch `uname -m` -R ./prog}. > + > @item -fsanitize=kernel-address > @opindex fsanitize=kernel-address > Enable AddressSanitizer for Linux kernel. Jakub