| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 218501
|
|
|
|
|
|
|
|
|
|
| |
addresses
Reviewed at http://reviews.llvm.org/D4527
This patch is part of an effort to implement a more generic debugging API, as proposed in http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074656.html, with first part reviewed at http://reviews.llvm.org/D4466. Now adding several new APIs: __asan_report_present, __asan_get_report_{pc,bp,sp,address,type,size,description}, __asan_locate_address. These return whether an asan report happened yet, the PC, BP, SP, address, access type (read/write), access size and bug description (e.g. "heap-use-after-free"), __asan_locate_address takes a pointer and tries to locate it, i.e. say whether it is a heap pointer, a global or a stack, or whether it's a pointer into the shadow memory. If global or stack, tries to also return the variable name, address and size. If heap, tries to return the chunk address and size. Generally these should serve as an alternative to "asan_describe_address", which only returns all the data in text form. Having an API to get these data could allow having debugging scripts/extensions that could show additional information about a variable/expression/pointer. Test cases in test/asan/TestCases/debug_locate.cc and test/asan/TestCasea/debug_report.cc.
llvm-svn: 218481
|
|
|
|
|
|
| |
index() is deprecated.
llvm-svn: 218312
|
|
|
|
|
|
|
|
| |
instruction upon SIGSEGV
When dump_instruction_bytes=1 and the instruction pointer doesn't point to the zero page, ASan prints 16 bytes starting at the instruction point.
llvm-svn: 218243
|
|
|
|
|
|
|
|
| |
* Allow user SEGV handler if Android-L-like setup is detected.
Necessary for correctness.
* Change file context labels on the wrapper script to appease SELinux.
llvm-svn: 218124
|
|
|
|
|
|
| |
This may help some users figure out that the error report is valid.
llvm-svn: 218123
|
|
|
|
| |
llvm-svn: 218072
|
|
|
|
|
|
|
| |
Do not forget to add newlines between multiple symbolized lines corresponding to
a single input line (i.e. inlining).
llvm-svn: 218071
|
|
|
|
|
|
|
| |
Writing to system log requires libc interceptors to be initialized.
Fixes crashes with verbosity=1 on newer Android builds.
llvm-svn: 217764
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
These two functions are unavailable on MSVC2012, which breaks building the
ASAN tests with MSVC2012. Since the tests required to run these functions
are disabled on Windows for now, avoid building them to fix the MSVC2012
builds.
Test Plan: This is needed in order to fix building the ASAN tests with MSVC2012.
Reviewers: timurrrr
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5343
llvm-svn: 217763
|
|
|
|
| |
llvm-svn: 217679
|
|
|
|
|
|
|
|
| |
It turned out that we have to bridge more stuff between the executable
and the ASan RTL DLL than just __asan_option_detect_stack_use_after_return.
See PR20918 for more details.
llvm-svn: 217673
|
|
|
|
| |
llvm-svn: 217584
|
|
|
|
|
|
|
|
|
| |
We may as well just use Symbolizer::GetOrInit() in all the cases.
Don't call Symbolizer::Get() early in tools initialization: these days
it doesn't do any important setup work, and we may as well create the
symbolizer the first time it's actually needed.
llvm-svn: 217558
|
|
|
|
|
|
| |
reproducer where this assertion fails...
llvm-svn: 217215
|
|
|
|
| |
llvm-svn: 217194
|
|
|
|
| |
llvm-svn: 216884
|
|
|
|
| |
llvm-svn: 216705
|
|
|
|
|
|
| |
address is properly poisoned and return the cookie value. If not, return 0 to avoid infinite loop of DTORs (in case of use-after-free). Calls to this function will be inserted by clang (separate change)
llvm-svn: 216692
|
|
|
|
|
|
| |
on chromium (I suspect that LLVM looses nosanitizer metadata; no test yet)
llvm-svn: 216684
|
|
|
|
|
|
|
|
| |
asan_win_uar_thunk object file
This directive results in 'symbol already defined' when linking DLLs that use -MD
llvm-svn: 216663
|
|
|
|
| |
llvm-svn: 216544
|
|
|
|
|
|
|
|
|
|
| |
There is no reason to have different library names for shared and static
cases on linux. It also breaks Android where we install the shared asan-rt
library into the system and should keep the old name.
This change reverts most of r216380 limiting it to win32 targets only.
llvm-svn: 216533
|
|
|
|
| |
llvm-svn: 216448
|
|
|
|
|
|
|
| |
With this patch, "check-asan" passes all the tests with both MT and MD ASan RTL if you set COMPILER_RT_BUILD_SHARED_ASAN to ON
(PR20214)
llvm-svn: 216447
|
|
|
|
|
|
| |
functionality change intended
llvm-svn: 216407
|
|
|
|
| |
llvm-svn: 216387
|
|
|
|
| |
llvm-svn: 216386
|
|
|
|
| |
llvm-svn: 216382
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D5026
llvm-svn: 216380
|
|
|
|
| |
llvm-svn: 216265
|
|
|
|
| |
llvm-svn: 216264
|
|
|
|
| |
llvm-svn: 216184
|
|
|
|
|
|
|
|
|
|
|
|
| |
At least check-asan works with this change.
If the change breaks anything, we'll need to add:
a) a comment describing why we have to use INTERCEPT_FUNCTION rather than
ASAN_INTERCEPT_FUNC
and
b) a test case.
llvm-svn: 216177
|
|
|
|
|
|
|
|
|
|
| |
another sanitizer.
A user may run both LSan and LSan+ASan. It is weird to pass path to leak
suppression file (or other common sanitizer flags, like "verbosity") in
"LSAN_OPTIONS" in the first case and in "ASAN_OPTIONS" in the second case.
llvm-svn: 215949
|
|
|
|
| |
llvm-svn: 215725
|
|
|
|
|
|
| |
clang-format the definitions of these functions
llvm-svn: 215724
|
|
|
|
| |
llvm-svn: 215719
|
|
|
|
|
|
| |
re-written soon
llvm-svn: 215707
|
|
|
|
|
|
| |
sanitizer_common
llvm-svn: 215481
|
|
|
|
| |
llvm-svn: 215479
|
|
|
|
|
|
|
|
| |
favor of
a unified interface in <sanitizer/allocator_interface.h>.
llvm-svn: 215469
|
|
|
|
|
|
| |
warnings
llvm-svn: 215436
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch adds new features in asan-symbolizer script which are helpful for using ASan on embedded systems:
1) add cross-compile prefix for binutils
2) define path to sysroot with sanitized binaries
Features are enabled by command line options.
The patch also extends command line interface with help option.
Reviewed in http://reviews.llvm.org/D4703.
Patch by Maria Guseva!
llvm-svn: 215381
|
|
|
|
| |
llvm-svn: 215264
|
|
|
|
|
|
| |
This is a follow-up to r213654, r213656, r213667 and r213668.
llvm-svn: 214861
|
|
|
|
| |
llvm-svn: 214713
|
|
|
|
|
|
| |
PR19838 (Left OOB accesses on new[]-allocated arrays with array cookies are not detected). No tests yet. They will follow once I commit the clang part.
llvm-svn: 214711
|
|
|
|
| |
llvm-svn: 214704
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of creating global variables for source locations and global names,
just create metadata nodes and strings. They will be transformed into actual
globals in the instrumentation pass (if necessary). This approach is more
flexible:
1) we don't have to ensure that our custom globals survive all the optimizations
2) if globals are discarded for some reason, we will simply ignore metadata for them
and won't have to erase corresponding globals
3) metadata for source locations can be reused for other purposes: e.g. we may
attach source location metadata to alloca instructions and provide better descriptions
for stack variables in ASan error reports.
No functionality change.
llvm-svn: 214604
|