Skip to content
  1. Nov 13, 2013
    • Alexey Samsonov's avatar
      [ASan] Do not rely on malloc context in allocator reports. · 9ff45982
      Alexey Samsonov authored
      Invoke a fatal stack trace unwinder when ASan prints allocator-relevant
      error reports (double-free, alloc-dealloc-mismatch, invalid-free).
      Thus we'll be able to print complete stack trace even if allocation/free
      stacks are not stored (malloc_context_size=0).
      
      Based on the patch by Yuri Gribov!
      
      llvm-svn: 194579
      9ff45982
  2. Nov 01, 2013
    • Alexey Samsonov's avatar
      [Sanitizer] Unify summary reporting across all sanitizers. · 5dc6cff0
      Alexey Samsonov authored
      This change unifies the summary printing across sanitizers:
      now each tool uses specific version of ReportErrorSummary() method,
      which deals with symbolization of the top frame and formatting a
      summary message. This change modifies the summary line for ASan+LSan mode:
      now the summary mentions "AddressSanitizer" instead of "LeakSanitizer".
      
      llvm-svn: 193864
      5dc6cff0
  3. Oct 28, 2013
  4. Oct 27, 2013
  5. Oct 26, 2013
    • Peter Collingbourne's avatar
      Overhaul the symbolizer interface. · 791e65dc
      Peter Collingbourne authored
      This moves away from creating the symbolizer object and initializing the
      external symbolizer as separate steps.  Those steps now always take place
      together.
      
      Sanitizers with a legacy requirement to specify their own symbolizer path
      should use InitSymbolizer to initialize the symbolizer with the desired
      path, and GetSymbolizer to access the symbolizer.  Sanitizers with no
      such requirement (e.g. UBSan) can use GetOrInitSymbolizer with no need for
      initialization.
      
      The symbolizer interface has been made thread-safe (as far as I can
      tell) by protecting its member functions with mutexes.
      
      Finally, the symbolizer interface no longer relies on weak externals, the
      introduction of which was probably a mistake on my part.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1985
      
      llvm-svn: 193448
      791e65dc
  6. Oct 23, 2013
  7. Oct 18, 2013
  8. Oct 14, 2013
  9. Oct 04, 2013
  10. Sep 16, 2013
  11. Sep 12, 2013
  12. Sep 10, 2013
  13. Sep 03, 2013
  14. Aug 16, 2013
  15. Aug 13, 2013
  16. Jun 26, 2013
  17. May 29, 2013
  18. May 22, 2013
  19. May 06, 2013
  20. Apr 11, 2013
  21. Apr 10, 2013
  22. Apr 05, 2013
  23. Apr 01, 2013
  24. Mar 27, 2013
  25. Mar 26, 2013
  26. Mar 22, 2013
    • Kostya Serebryany's avatar
      [asan] Change the way we report the alloca frame on stack-buff-overflow. · 667a34a1
      Kostya Serebryany authored
      Before: the function name was stored by the compiler as a constant string
      and the run-time was printing it.
      Now: the PC is stored instead and the run-time prints the full symbolized frame.
      This adds a couple of instructions into every function with non-empty stack frame,
      but also reduces the binary size because we store less strings (I saw 2% size reduction).
      This change bumps the asan ABI version to v3.
      
      compiler-rt part, llvm part will follow.
      
      Example of report (now):
      ==31711==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fffa77cf1c5 at pc 0x41feb0 bp 0x7fffa77cefb0 sp 0x7fffa77cefa8
      READ of size 1 at 0x7fffa77cf1c5 thread T0
          #0 0x41feaf in Frame0(int, char*, char*, char*) stack-oob-frames.cc:20
          #1 0x41f7ff in Frame1(int, char*, char*) stack-oob-frames.cc:24
          #2 0x41f477 in Frame2(int, char*) stack-oob-frames.cc:28
          #3 0x41f194 in Frame3(int) stack-oob-frames.cc:32
          #4 0x41eee0 in main stack-oob-frames.cc:38
          #5 0x7f0c5566f76c (/lib/x86_64-linux-gnu/libc.so.6+0x2176c)
          #6 0x41eb1c (/usr/local/google/kcc/llvm_cmake/a.out+0x41eb1c)
      Address 0x7fffa77cf1c5 is located in stack of thread T0 at offset 293 in frame
          #0 0x41f87f in Frame0(int, char*, char*, char*) stack-oob-frames.cc:12  <<<<<<<<<<<<<< this is new
        This frame has 6 object(s):
          [32, 36) 'frame.addr'
          [96, 104) 'a.addr'
          [160, 168) 'b.addr'
          [224, 232) 'c.addr'
          [288, 292) 's'
          [352, 360) 'd'
      
      llvm-svn: 177723
      667a34a1
  27. Mar 21, 2013
  28. Mar 20, 2013
  29. Mar 18, 2013
  30. Feb 20, 2013
  31. Feb 06, 2013
  32. Feb 05, 2013
  33. Jan 28, 2013
  34. Jan 23, 2013
Loading