diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-05-22 21:44:06 +0200 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2015-02-18 18:05:53 +0000 |
commit | 0dd7714d4da9824cc1294d6e200dfc9f44fba182 (patch) | |
tree | fbb951d002e3ce538863105318039347a874d6f3 | |
parent | b35688760a6827639ecb4e1230d1a181e5048342 (diff) |
Add AddressSanitizer (ASAN) build option
--enable-asan for autotools
-D ENABLE_ASAN:BOOL=TRUE for CMake
Need Clang/LLVM >= 3.1 or GCC >= 4.9
More information about ASAN https://code.google.com/p/address-sanitizer/wiki/AddressSanitizer
Change-Id: I833d4216d9508b8f7550ebc1dff6326734bdb53a
Reviewed-on: https://code.wireshark.org/review/1727
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
-rw-r--r-- | CMakeLists.txt | 11 | ||||
-rw-r--r-- | CMakeOptions.txt | 1 | ||||
-rw-r--r-- | configure.ac | 18 |
3 files changed, 30 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ceeed1e3e..cf5c017f10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,6 +354,17 @@ else() ) endif() + set(WIRESHARK_ASAN_FLAGS + # With Clang >= 3.5 Leak detection is enable by default + # and no yet all leak is fixed... + # use ASAN_OPTIONS=detect_leaks=0 to disable detect_leaks + -fsanitize=address + ) + + if(ENABLE_ASAN) + set(WIRESHARK_COMMON_FLAGS ${WIRESHARK_COMMON_FLAGS} ${WIRESHARK_ASAN_FLAGS}) + endif() + if(ENABLE_EXTRA_COMPILER_WARNINGS) # This overrides -Werror set(WIRESHARK_COMMON_FLAGS ${WIRESHARK_COMMON_FLAGS} ${WIRESHARK_EXTRA_COMPILER_COMMON_FLAGS}) set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_COMPILER_C_ONLY_FLAGS}) diff --git a/CMakeOptions.txt b/CMakeOptions.txt index c3c5983fef..03015d28ab 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -20,6 +20,7 @@ option(AUTOGEN_pidl "Autogenerate pidl dissectors" OFF) option(DISABLE_WERROR "Do not treat warnings as errors" OFF) option(ENABLE_EXTRA_COMPILER_WARNINGS "Do additional compiler warnings (disables -Werror)" OFF) option(ENABLE_CODE_ANALYSIS "Enable the compiler's static analyzer if possible" OFF) +option(ENABLE_ASAN "Enable AddressSanitizer (ASAN) for debugging (May be slow down)" OFF) # # Leave GTK2 the default on Windows, looks better than GTK3 diff --git a/configure.ac b/configure.ac index dd0b50234b..d1ec39a17e 100644 --- a/configure.ac +++ b/configure.ac @@ -922,6 +922,24 @@ AC_ARG_ENABLE(extra-compiler-warnings, fi ],) +# Try to add ASAN address analyze. +# Only needed for analyse +# +AC_ARG_ENABLE(asan, + AC_HELP_STRING( [--enable-asan], + [Enable AddressSanitizer (ASAN) for debugging (May be slow down)@<:@default=no@:>@]), +[ + # + # With Clang >= 3.5 Leak detection is enable by default + # and no yet all leak is fixed... + # use ASAN_OPTIONS=detect_leaks=0 to disable detect_leaks + # + AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fsanitize=address) + +],) + + + # # The following are for C and C++ # |