forked from OSchip/llvm-project
![]() Previously, ASan would produce reports like this: ERROR: AddressSanitizer: breakpoint on unknown address 0x000000000000 (pc 0x7fffdd7c5e86 ...) This is unhelpful, because the developer may think this is a null pointer dereference, and not a breakpoint exception on some PC. The cause was that SignalContext::GetAddress would read the ExceptionInformation array to retreive an address for any kind of exception. That data is only available for access violation exceptions. This changes it to be conditional on the exception type, and to use the PC otherwise. I added a variety of tests for common exception types: - int div zero - breakpoint - ud2a / illegal instruction - SSE misalignment I also tightened up IsMemoryAccess and GetWriteFlag to check the ExceptionCode rather than looking at ExceptionInformation[1] directly. Differential Revision: https://reviews.llvm.org/D92344 |
||
---|---|---|
.. | ||
cmake | ||
docs | ||
include | ||
lib | ||
test | ||
tools | ||
unittests | ||
utils | ||
www | ||
.clang-tidy | ||
.gitignore | ||
CMakeLists.txt | ||
CODE_OWNERS.TXT | ||
CREDITS.TXT | ||
LICENSE.TXT | ||
README.txt |
README.txt
Compiler-RT ================================ This directory and its subdirectories contain source code for the compiler support routines. Compiler-RT is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt. ================================