For this case cfe-dev (or llvmdev) is actually more relevant, Alexey will reply to you shortly.
--kcc On Mon, Mar 31, 2014 at 6:22 AM, Richtarsky, Martin < [email protected]> wrote: > Hi, > > I posted this on cfe-dev before, but perhaps this is more appropriate. > > I noticed that debugging of AddressSanitizer-instrumented clang debug > binaries > is basically impossible since all the symbols are optimized out. It looks > like > there is something wrong with debug info. I'm getting the same behavior > on 3.4 and trunk. Interestingly it works for -fsanitize=undefined. Is this > a known > issue? There are several related bugs but they are fixed already, e.g. > http://llvm.org/bugs/show_bug.cgi?id=11818 > > # cat UnitAsanStackOOB.cpp > int main() > { > const int len = 10; > char buffer[len]; > char *p = &buffer[0]; > p[len] = 1; > return 0; > } > > # clang++ -g -o oob_trunk_add -fsanitize=address UnitAsanStackOOB.cpp > # gdb oob_trunk_add > GNU gdb (GDB) 7.5.1 > Reading symbols from > /local/build/git5/sys/src/clang/AddressSanitizer/test/oob_trunk_add...done. > (gdb) b main > Breakpoint 1 at 0x495a4a: file UnitAsanStackOOB.cpp, line 3. > (gdb) run > Starting program: > /local/build/git5/sys/src/clang/AddressSanitizer/test/oob_trunk_add > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib64/libthread_db.so.1". > Breakpoint 1, main () at UnitAsanStackOOB.cpp:3 > 3 const int len = 10; > (gdb) n > 5 char *p = &buffer[0]; > (gdb) n > 6 p[len] = 1; > (gdb) p p > $1 = <optimized out> > (gdb) p len > $2 = <optimized out> > > # clang++ -g -o oob_trunk_und -fsanitize=undefined UnitAsanStackOOB.cpp > # gdb oob_trunk_und > GNU gdb (GDB) 7.5.1 > (gdb) b main > Breakpoint 1 at 0x426280: file UnitAsanStackOOB.cpp, line 2. > (gdb) run > Starting program: > /local/build/git5/sys/src/clang/AddressSanitizer/test/oob_trunk_und > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib64/libthread_db.so.1". > Breakpoint 1, main () at UnitAsanStackOOB.cpp:2 > 2 { > (gdb) n > 3 const int len = 10; > (gdb) n > 5 char *p = &buffer[0]; > (gdb) n > 6 p[len] = 1; > (gdb) p p > $1 = 0x7fffffff975e "" > (gdb) p len > $2 = 10 > > # clang++ -v > clang version 3.5.0 (trunk 204863) > Target: x86_64-unknown-linux-gnu > Thread model: posix > Found candidate GCC installation: /usr/lib64/gcc/x86_64-suse-linux/4.3 > Selected GCC installation: /usr/lib64/gcc/x86_64-suse-linux/4.3 > Candidate multilib: .;@m64 > Candidate multilib: 32;@m32 > Selected multilib: .;@m64 > > Best regards, > Martin > > -- > You received this message because you are subscribed to the Google Groups > "address-sanitizer" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "address-sanitizer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
