Dimitry Andric
2d82f915c2
For the asan_symbolize.py script, use addr2line as the default system
...
symbolizer on FreeBSD too. This allows the asan-symbolize-bad-path.cc
test to succeed.
llvm-svn: 256578
2015-12-29 21:36:34 +00:00
Dan Albert
c8bdae1074
Check multilib dir for asan_device_setup.
...
Reviewers: eugenis
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D15247
llvm-svn: 254789
2015-12-04 22:51:03 +00:00
Evgeniy Stepanov
2253d1c052
[asan] Fix asan_device_setup script on KitKat.
...
app_process32, when started via a shell script wrapper, needs a
different security context to satisty SELinux.
Patch by Abhishek Arya.
llvm-svn: 251572
2015-10-28 22:55:12 +00:00
Alexey Samsonov
c6de580afe
asan_symbolize.py: Call llvm-symbolizer with --functions=linkage instead of --functions=short.
...
llvm-svn: 251356
2015-10-26 21:48:49 +00:00
Evgeniy Stepanov
25c58d124b
[asan] Fix asan_symbolize.py handling of non-existing paths
...
llvm-svn: 248962
2015-09-30 23:17:39 +00:00
Alexey Samsonov
1b76da6a6c
Support inline functions symbolization in Addr2Line symbolizer.
...
Patch by Maxim Ostapenko!
Summary:
Right now, Addr2Line symbolizer in asan_symbolize.py doesn't support inline functions symbolization. This might be a useful feature for using ASan on embedded systems.
Test results:
$ cat test.c
static inline void FooBarBaz() {
__sanitizer_print_stack_trace();
}
int main() {
FooBarBaz();
return 0;
}
$ clang test.c -fsanitize=address -g -O2 -o test.x && ./test.x &> /tmp/test.log
$ ./projects/compiler-rt/lib/asan/scripts/asan_symbolize.py -l /tmp/test.log
#0 0x42095e in __sanitizer_print_stack_trace _asan_rtl_
#1 0x4cec07 in FooBarBaz /home/max/build/llvm/asan/test.c:4
#2 0x4cec07 in main /home/max/build/llvm/asan/test.c:8
#3 0x7f89f0891ec4 in __libc_start_main /build/buildd/eglibc-2.19/csu/libc-start.c:287
Reviewers: glider, samsonov
Subscribers: jevinskie, llvm-commits, ygribov
Differential Revision: http://reviews.llvm.org/D12153
llvm-svn: 247642
2015-09-14 23:56:42 +00:00
Evgeniy Stepanov
df5ba14731
[asan] Support arm64 devices in asan_device_setup.
...
llvm-svn: 243679
2015-07-30 20:07:13 +00:00
Evgeniy Stepanov
8e36aa6e02
[asan] Support per-application flags in the Android setup script.
...
llvm-svn: 243494
2015-07-28 22:45:24 +00:00
Sergey Matveev
4a792988b3
[asan] Allow users of asan_symbolize.py to forbid fallback to atos/addr2line.
...
llvm-svn: 231492
2015-03-06 17:05:28 +00:00
Evgeniy Stepanov
84d30ba43a
[asan] Support 'su' rooted devices in ASan setup script.
...
Android devices may not support 'adb root', but be rooted with 'su'
binary. This patch makes it possible to install ASAN to such
devices. When --use-su flag is specified, most 'adb ...' commangs are
changed to 'adb su -c "..."'.
Some other notes:
* 'readlink' changed to 'ls -l', since not all devices have readlink
in their firmware.
* removing ASan library step moved to very end, because 'su' may not
run properly without this library until shell will be restarted.
Patch by Dmitry <ripp at yandex-team dot ru>.
llvm-svn: 229368
2015-02-16 10:22:12 +00:00
Evgeniy Stepanov
6037579926
[asan] Add one more wait-for-device in the Android setup script.
...
llvm-svn: 227473
2015-01-29 17:24:21 +00:00
Nico Weber
64a74bf1cf
Fix indents on asan_symbolize.py's argument parsing code. No behavior change.
...
llvm-svn: 227327
2015-01-28 17:29:57 +00:00
Nico Weber
406f640a68
Make asan_symbolize.py not crash on Windows.
...
asan_symbolize.py isn't needed on Windows, but it's nice if asan has a unified
UI on all platforms. So rather than have asan_symolize.py die on startup due to
it importing modules that don't exist on Windows, let it just echo the input.
llvm-svn: 227326
2015-01-28 17:28:04 +00:00
Evgeniy Stepanov
4286a9bd5a
[asan] Change detection of allow_user_segv_handler on Android.
...
llvm-svn: 226273
2015-01-16 13:12:22 +00:00
Alexander Potapenko
7f9be7120d
[ASan] Fix the logic that decides whether we need to spawn a new llvm-symbolizer in asan_symbolize.py
...
llvm-svn: 224710
2014-12-22 16:00:00 +00:00
Alexander Potapenko
7a0f81a9b7
[ASan] Allow the users of SymbolizationLoop to make use of the --dsym_hint option in llvm-symbolizer
...
Let the users of SymbolizationLoop define a function that produces the list of .dSYM hints (possible path to the .dSYM bundle) for the given binary.
Because the hints can't be added to an existing llvm-symbolizer process, we spawn a new symbolizer process ones each time a new hint appears.
Those can only appear for binaries that we haven't seen before.
llvm-svn: 222535
2014-11-21 14:12:00 +00:00
Evgeniy Stepanov
faef77480d
[asan] Minor tweak to asan_device_setup.
...
Add another wait-for-device which may fix a flaky setup error.
Fix output message.
llvm-svn: 219117
2014-10-06 12:45:39 +00:00
Evgeniy Stepanov
0b9109c803
[asan] Support Android/x86 in asan_device_setup.
...
llvm-svn: 218968
2014-10-03 08:57:11 +00:00
Evgeniy Stepanov
9e922e7d24
[sanitizer] Android build cleanup.
...
* Detect Android toolchain target arch and set correct runtime library name.
* Merged a lot of Android and non-Android code paths.
* Android is only supported in standalone build of compiler-rt now.
* Linking lsan-common in ASan-Android (makes lsan annotations work).
* Relying on -fsanitize=address linker flag when building tests (again,
unification with non-Android path).
* Runtime library moved from lib/asan to lib/linux.
llvm-svn: 218605
2014-09-29 13:18:55 +00:00
Evgeniy Stepanov
3f11c0d79c
[asan] Fix SELinux setup on Android-K.
...
On pre-L devices SELinux is set up in such a way that zygote wrapper
has to be in system_file context, not zygote_exec.
llvm-svn: 218599
2014-09-29 09:48:13 +00:00
Evgeniy Stepanov
a5d07482d9
[asan] asan_device_setup improvements.
...
* 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
2014-09-19 15:04:44 +00:00
Sergey Matveev
756afb2f82
[asan] Initialize logfile in asan_symbolize.py to sys.stdin.
...
llvm-svn: 218072
2014-09-18 20:01:28 +00:00
Sergey Matveev
4588de1c22
[asan] Fix a bug in asan_symbolize.py
...
Do not forget to add newlines between multiple symbolized lines corresponding to
a single input line (i.e. inlining).
llvm-svn: 218071
2014-09-18 19:16:44 +00:00
Evgeniy Stepanov
e579c76bd5
[asan] Preserve existing LD_PRELOAD setting on Android.
...
llvm-svn: 217584
2014-09-11 12:20:29 +00:00
Evgeniy Stepanov
21202ba8dd
[asan] Update asan_device_setup to support Android L Preview.
...
llvm-svn: 216884
2014-09-01 15:37:50 +00:00
Alexey Samsonov
968a358974
[ASan] Add new options for asan_symbolize.py script.
...
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
2014-08-11 20:02:49 +00:00
Viktor Kutuzov
5f5adb8ed5
Add FreeBSD support to the Asan symbolization script
...
Differential Revision: http://reviews.llvm.org/D4560
llvm-svn: 213370
2014-07-18 12:07:00 +00:00
Alexander Potapenko
9c62a6d8a2
[ASan] Factor out SymbolizationLoop.process_line() function to let Python
...
scripts that import asan_symbolize to symbolize their reports line by line.
llvm-svn: 213136
2014-07-16 11:00:16 +00:00
Evgeniy Stepanov
86c077b3a2
[asan] Remove runtime assembly helpers.
...
Remove helper functions that were used in assembly instrumentation.
Patch by Yuri Gorshenin.
llvm-svn: 212456
2014-07-07 13:59:12 +00:00
Evgeniy Stepanov
57eba53a01
[asan] asan_device_setup: extend search path
...
In standalone build asan-rt is stored in yet another path.
llvm-svn: 210259
2014-06-05 12:49:35 +00:00
Evgeniy Stepanov
687933f55d
[asan] Fix x86 asm instrumentation to preserve flags.
...
This change also enables asm instrumentation in asan tests that was
accidentally disabled yearlier, and adds a sanity test for that.
Patch by Yuri Gorshenin.
llvm-svn: 209282
2014-05-21 08:21:14 +00:00
Kostya Serebryany
6c039b3459
[asan] update asan_symbolize.py to use the new llvm-symbolizer flag syntax
...
llvm-svn: 209116
2014-05-19 08:30:51 +00:00
Alexey Samsonov
921f5a529e
asan_symbolize.py: use llvm-symbolizer results even if it returned function name w/o file/line info
...
llvm-svn: 202983
2014-03-05 15:18:50 +00:00
Alexey Samsonov
8ad7a05bb4
Improve llvm-symbolizer discovery in asan_symbolize.py
...
llvm-svn: 202982
2014-03-05 15:00:36 +00:00
Evgeniy Stepanov
322e89c4e2
[asan] Install asan_device_setup to bin/ when targetting Android.
...
asan_device_setup is a utility that prepares a device to run code built with
ASan. Essentially, it installs ASan runtime library into the system. For this
reason, it has to be at a predictable relative path from the runtime library
itself. We also plan to distribute this utility, packaged with runtime library
and maybe llvm-symbolizer, to the users.
llvm-svn: 202362
2014-02-27 08:41:40 +00:00
Evgeniy Stepanov
3ff723f373
[asan] asan_device_setup: fix a typo in usage text
...
llvm-svn: 202246
2014-02-26 08:12:28 +00:00
Evgeniy Stepanov
84610ed7bf
[asan] Remove .sh extension from asan_device_setup.
...
llvm-svn: 202245
2014-02-26 08:10:03 +00:00
Evgeniy Stepanov
0f56a71859
[asan] Changes to asm instrumentation must be done through the generator script.
...
llvm-svn: 201766
2014-02-20 07:56:58 +00:00
Evgeniy Stepanov
caaaac8c30
[asan] Disable asm instrumentation and tests on Mac.
...
Move asm tests to their own file.
llvm-svn: 201653
2014-02-19 09:14:39 +00:00
Evgeniy Stepanov
2169c6bba4
[asan] Added assembly functions for x86/amd64 asan.
...
These are runtime support functions for inline assembly instrumentation.
This is a re-submit of r201402.
Patch by Yuri Gorshenin.
llvm-svn: 201650
2014-02-19 08:30:39 +00:00
Evgeniy Stepanov
0de2b9b1e2
[asan] Revert r201402, r201404.
...
Test fails in bootstrap build.
llvm-svn: 201411
2014-02-14 12:37:41 +00:00
Evgeniy Stepanov
f335bd9c69
[asan] Added assembly functions for x86/amd64 asan.
...
These are runtime support functions for inline assembly instrumentation.
Patch by Yuri Gorshenin.
llvm-svn: 201402
2014-02-14 11:55:53 +00:00
Evgeniy Stepanov
1fc9e61356
[asan] asan_device_setup.sh: allow overriding adb path.
...
llvm-svn: 200698
2014-02-03 15:12:09 +00:00
Evgeniy Stepanov
422944fdbd
[asan] Fix asan_device_setup.sh failure on userdebug Android.
...
llvm-svn: 200382
2014-01-29 09:16:48 +00:00
Evgeniy Stepanov
aecead9d4f
[asan] Android setup: do "adb root" before "adb remount".
...
llvm-svn: 200199
2014-01-27 08:20:28 +00:00
Evgeniy Stepanov
9504304f2d
[asan] Add an ASan-on-Android installation script.
...
llvm-svn: 200009
2014-01-24 15:24:24 +00:00
Alexander Potapenko
d29853564d
[ASan] Make asan_symbolize.py fall back to ASAN_SYMBOLIZER_PATH (which is used when ASAN_OPTIONS=symbolize=1) if LLVM_SYMBOLIZER_PATH is empty.
...
llvm-svn: 193758
2013-10-31 16:08:09 +00:00
Alexander Potapenko
4f73dea69d
[ASan] Close stderr before launching atos in asan_symbolize.py
...
llvm-svn: 185631
2013-07-04 14:21:49 +00:00
Alexander Potapenko
0fde89f2aa
[ASan] Cache atos processes to make Darwin symbolication faster.
...
Patch by Jesse Ruderman<jruderman@gmail.com>
llvm-svn: 185325
2013-07-01 10:51:31 +00:00
Alexander Potapenko
41cd6102e9
[ASan] Do not buffer stdin in asan_symbolize.py
...
llvm-svn: 183006
2013-05-31 14:55:06 +00:00