AddressSanitizer Being Ported To GCC Trunk

Posted by Michael Larabel on October 11, 2012

GCC developers continue to work on bringing AddressSanitizer, which is part of the LLVM project, to their open-source compiler in hopes of better catching memory bugs and errors.

Google's Diego Novillo has shared that a new transitional branch has been made in the process of porting ASAN to trunk. "I have created a temporary branch to host the port of ASAN to trunk. Wei has done the initial port of the original code from Kostya. It compiles but we still do not have the runtimes (Wei is working on that)."

ASAN is the AddressSanitizer that serves as a memory error detector for C and C++ codes. AddressSanitizer is capable of detecting memory bugs such as use-after-free, heap buffer overflows, stack buffer overflows, global buffer overflows, and use-after-return. One of the benefits of AddressSanitizer over alternatives like Valgrind is that ASAN is designed to be very fast. AddressSanitizer within LLVM/Clang serves as a compiler instrumentation module in the form of an LLVM pass and then a run-time library that overrides the memory allocation functions.

Running AddressSanitizer binaries lead to a reported slowdown of about 2x, which is still faster than similar memory checking tools. GNU Compiler Collection developers have been interested in AddressSanitizer support and there's been some work previously while now it seems to finally be coming together with this transitional branch as the current code is made compatible with the latest GCC trunk, which is needed before it can be merged.

The GCC ASAN run-time also then needs to be written before it's actually useful, but Diego mentions that it should come soon.

More information on AddressSanitizer (ASAN) is available from its Google Code page.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. GCC 4.8.0 vs. LLVM Clang 3.3 Compiler Performance
  2. Intel Linux OpenGL Driver Leading Over Apple OS X
  3. The Cost Of Ubuntu Disk Encryption
  4. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
Latest Linux News
  1. A New X.Org-Free Wayland LiveCD Released
  2. Unity 8, Mir Made Progress This Week On Features
  3. LLVM Clang 3.3 RC2 Is Ready For Testing
  4. AMD RadeonSI Gallium3D Begins Simple CL Demos
  5. Intel Shows Off GNOME3-Based Tizen Shell
  6. Linux Desktop Security Could Be A Whole Lot Better
  7. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  8. New NVIDIA Linux Driver Supports The GeForce GTX 780
  9. Chrome 28 To Offer More Speed Improvements
  10. Digia Announces "Boot To Qt" Project
  11. X.Org Libraries Hit By Round Of Security Issues
Latest Forum Talk
  1. Linux's "Ondemand" Governor Is No...
  2. A New X.Org-Free Wayland LiveCD Released
  3. Microsoft Releases Skype For Linux 4.2, Has...
  4. Unity 8, Mir Made Progress This Week On Features
  5. Linux Desktop Security Could Be A Whole Lot Better
  6. AMD RadeonSI Gallium3D Begins Simple CL Demos
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite