In article <527159918.27358.1480598518733.javamail.ngm...@webmail18.arcor-online.net>, Carsten Kunze <carsten.ku...@arcor.de> wrote: >Hello, > >if one wants to use the sanitizer features of the C compiler, what is >the suggested way? > >If I e.g. compile and link with options > >-O2 -g -O0 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wall >-Wextra -Wsign-compare -Wcast-align -Wcast-qual -Wmissing-prototypes >-Wunused-parameter -Wunused-function -Wshadow -fno-common >-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero >-fsanitize=float-cast-overflow > >(-O2 is from CFLAGS which should be reset by -O0) > >I get something like > >ui.c:2017:11: runtime error: member access within misaligned address >0xbebebebebebebebe for type 'struct filediff', which requires 8 byte >alignment >0xbebebebebebebebe: note: pointer points here >test ><memory cannot be printed> > >ASAN:SIGSEGV > >================================================================= > >==1372==ERROR: AddressSanitizer: SEGV on unknown address 0x72d42a8a5000 >(pc 0x0000004229c5 bp 0x7f7fff49c710 sp 0x7f7fff49c460 T0) > #0 0x4229c4 (<unknown module>) > > #1 0x421dd7 (<unknown module>) > > #2 0x44b9be (<unknown module>) > > #3 0x42a329 (<unknown module>) > > #4 0x4488ad (<unknown module>) > > #5 0x413a90 (<unknown module>) > > #6 0x410e02 (<unknown module>) > > #7 0x4054ae (<unknown module>) > > #8 0x4044ba (<unknown module>) > > > >AddressSanitizer can not provide additional info. > >SUMMARY: AddressSanitizer: SEGV ??:0 ?? > >==1372==ABORTING > >on errors. What needs to be configured to make the symbolizer work? >(Binary is not stripped.)
You need an external symbolizer... By default it runs llvm-symbolizer, but you can make it use addr2line by setting: ASAN_OPTIONS=allow_addr2line=true But then, it looks for libasan.so.1 in the current working directory, and you can ln -s /usr/lib/libasan.so.1 ., after that it finds the symbols in the library but not in the main program, saying "unknown module". christos