Alexander Aksenov [Tue, 13 Dec 2016 16:59:34 +0000 (19:59 +0300)]
Cleanup code
- remove comments that were related to GOT patcher's Preload
supporting
- function isNotFiltOptionEnabled() never used
- unused _sopt variable from da_egl_tizen.cpp
- OPT_* features replaced with FL_*
- remove unused defenitions from daprobe.h
Change-Id: Ie7a17d6990f1bb1dae082164001a0067dfad5bb2
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 13 Dec 2016 12:09:54 +0000 (15:09 +0300)]
Add separated Preload features
- now all preload-related features are in feature_code_1, so
it is written after generation now;
- enable feature headers generation.
- support Preload headers generation in gen_headers
Related with swap-manager commit
Change-Id: Ieca42b27b8a1d0e71dc2eb66701c2081d35869f0
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 13 Dec 2016 10:02:25 +0000 (13:02 +0300)]
Preload: searching special wrappers for kernel calling
Now special wrappers for kernel calling are used, so their
addreeses are searched.
Change-Id: I1cb28ee6c7d465abedadf5a39c14ef10224f5f1f
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 6 Dec 2016 16:15:59 +0000 (19:15 +0300)]
Preload: Add orig field pointer passing to kernel
Since preload implementation there field with originally
called API address has arrived, it should be send in each
probe message. When probe handlers called via preload
mechanism we cannot get this information in user-space, so
this field left zero and its address is passed to kernel
for filling here.
This commit is related with swap-modules commit with the
same name.
Change-Id: I713c825070718b1c4922d4ee7e6f4f5354b381a0
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 6 Dec 2016 14:39:21 +0000 (17:39 +0300)]
Refactor probes with variable arguments
Now there is special definition for such probes wrappers
Change-Id: I8a04f49ed0f6d971b654472909b486e5cf987896
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Mon, 5 Dec 2016 11:20:47 +0000 (14:20 +0300)]
Remove dead code defenitions from da_socket.h
Change-Id: I8ad1ed463f70770f0deae7fcc94e38fbefce8cf4
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 1 Dec 2016 17:21:50 +0000 (20:21 +0300)]
Add kernel called wrappers for probes
Previously to the handler themselves data variables were passed.
It was not scalable and difficult to maintain. Now these
variables replaced with structure that contains this data. This
makes passing data more flexible and reduces stack usage on some
platforms.
Also it separates original address (address where probe has
fired) and exec address (pointer to function that should be
executed). It was done because of a great difference between
GOT patcher-based handling and Preload-based: in the second
case we have no avaliable information in user-space about
caller, call_type and original address and exec address
is the result of a dlsym() search while in the first case
we know everything in userspace.
Change-Id: Ib47fa1e655c5f820fdefacea7bd8e85765e62b8c
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 1 Dec 2016 14:41:31 +0000 (17:41 +0300)]
Preload: add support at probes saving
Now writing messages flexibly supproting both GOT patcher
and Preload
Change-Id: I7d263f1f9a7dc646fe604202e3d90fa7e2dace3f
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 1 Dec 2016 12:49:52 +0000 (15:49 +0300)]
Replace TYPE_AND_INFO with TARGET_BINS message
Now type of preload is not send
Related with swap-probe commit
Change-Id: I75953a9a9b19f78a10de5faa7a7722da89a45322
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Mon, 15 May 2017 13:10:22 +0000 (16:10 +0300)]
Code style fix
Change-Id: I0162eae75320bc265f03fd2933655ab9ca7b7ed5
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 31 May 2017 09:52:24 +0000 (12:52 +0300)]
Make splitted profiler's libs ignored
Change-Id: I54452384bb745e085dad52aa6d7b56ed5999a55e
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Vyacheslav Cherkashin [Thu, 20 Apr 2017 13:52:46 +0000 (16:52 +0300)]
Move screenshot storing to manager
Change-Id: Id31ba8135075c4f265819f4ecb2f3525686f78b1
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Alexander Aksenov [Tue, 18 Apr 2017 13:40:03 +0000 (16:40 +0300)]
Remove useless check
Change-Id: I519c0d2488325f3eee07398476b213616732a13a
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 18 Apr 2017 13:10:12 +0000 (16:10 +0300)]
Add error message on libraries loading fail
Change-Id: I2a24532f5723d0af4dbb2332bd53c39e74ae0b82
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Dmitry Kovalenko [Wed, 29 Mar 2017 15:45:56 +0000 (18:45 +0300)]
Workarround hw specific screenshot issue
Qualcom devices has 16 pixel padding on right side
So display driver has screen_width+16 width
This workarround detects padding (as black pixels on the right)
Change-Id: I4aa5eea216cee561b19086ee8aa03ce6d8d5a8aa
Dmitry Kovalenko [Mon, 27 Mar 2017 07:15:57 +0000 (10:15 +0300)]
Rework license file creation for packages
Change-Id: Ia0be79eb837797f5a0e8c2206b9803aa3fcbf41a
Alexander Aksenov [Tue, 24 Jan 2017 16:38:37 +0000 (19:38 +0300)]
Fix subsequent type and info messages handling
Change-Id: I75ec9ed2c744d0a9fa1dd691e5bdbb9ee8bd6d4b
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 18 Jan 2017 13:27:19 +0000 (16:27 +0300)]
Load screenshot library on screenshot request
Previously it was loaded only on screenshot feature set.
Change-Id: Ief460da9be3d8068d110733c8139286e44db3a18
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Vyacheslav Cherkashin [Fri, 27 Jan 2017 15:00:04 +0000 (18:00 +0300)]
add test for _da_call_original()
Change-Id: Iaffa14dcdee204a0ed89aadd8c8fbd9e774eb1aa
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Thu, 26 Jan 2017 14:22:22 +0000 (17:22 +0300)]
ARM64: implement _da_call_original()
Change-Id: Ied848ffe9bce6940768f03ef47576ca535aae12f
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 16 Jan 2017 12:40:28 +0000 (15:40 +0300)]
Port da_gles30_native.cpp to aarch64
Change-Id: I375c0d35f82ec496dd6949b34cff24eb2150a65d
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 12 Dec 2016 11:33:56 +0000 (14:33 +0300)]
elf_parser: add plt support for AARCH64
Change-Id: Ie839952128c7ed10160dfe0325c8c3fd5dcd99cf
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Tue, 29 Nov 2016 15:33:56 +0000 (18:33 +0300)]
Add support 64-bits for api_names.txt
Replace hardcode "lib" path by "__lib_prefix__".
Change-Id: I645119146762e45ec3e276cf63b9949f475f7d21
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Tue, 29 Nov 2016 08:43:22 +0000 (11:43 +0300)]
Port installing dirs to 64-bit
use %{_bindir}, %{_libdir}, %{_includedir} instead of hardcode paths
Change-Id: I9da8e5eaf3a765c38ee6204ce5395f8dbdccd0bf
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 21 Nov 2016 08:31:44 +0000 (11:31 +0300)]
Add support build for AARCH64
Change-Id: I89e347b5ffd2074c11788f7fa91459ba5b0d37e1
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Tue, 29 Nov 2016 08:47:49 +0000 (11:47 +0300)]
Remove libdaprobe.so
Change-Id: If878e987f3ea8f6dddfb3bbfa5fd45a4171ed1e4
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 28 Nov 2016 15:10:24 +0000 (18:10 +0300)]
Remove unused code
Change-Id: I81499b367c81643d2a1b9dae333f79005a387629
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Wed, 16 Nov 2016 12:06:26 +0000 (15:06 +0300)]
elf_parser: redesign
Innovations:
- rewrite parsing elf file on C++
(parsing 32-bits and 64-bits have native common code)
- add 64-bits support
- new interface libparserelf.so
Update prebuild files: libparserelf_x86.so and libparserelf_x86_64.so.
To prepare ones use the following:
# patchelf --set-rpath /emul//usr/lib libparserelf_x86.so
# patchelf --set-rpath /emul//usr/lib64 libparserelf_x86_64.so
Change-Id: I034b187c1a4fdb28b132278d23d8954dc790edb1
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Tue, 15 Nov 2016 12:36:48 +0000 (15:36 +0300)]
elf_parser: add warnings flags
and fix build
Change-Id: I507e084f18b2d36c9eec71fec7e8956fce9715db
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Tue, 15 Nov 2016 12:35:34 +0000 (15:35 +0300)]
elf_parser: add Makefile
Split Makefile on Makefile and elf_parser/Makefile
Change-Id: I0fae040ceec35b3c12a005bcbc37f18f2d0e4930
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 14 Nov 2016 13:12:39 +0000 (16:12 +0300)]
Change caller type
To support ARM64
Change-Id: Id76f93a21e8e4d0d1e8bd99024bf2b6a201ed980
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 14 Nov 2016 13:08:31 +0000 (16:08 +0300)]
Port KHASH_MAP_INIT_VOIDP() to arm64
Change-Id: I7654d0b30019a3078a6471cc9b429536b08264f0
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 14 Nov 2016 12:37:35 +0000 (15:37 +0300)]
Remove unused code
Clean deadcode from:
include/dacollection.h
helper/dacollection.c
Change-Id: Ieb3c089248128329b76987e5def602b243bbc215
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vyacheslav Cherkashin [Mon, 17 Oct 2016 17:02:51 +0000 (20:02 +0300)]
Fix store to unaligned address
Because "strd" and "ldrd" can works with only aligned access,
we do not allow compiler (ARM) use "strd" instructinos
for saving uint64_t values.
Change-Id: I72d0022898d1c656860d08b654232fd7edb0556e
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Alexander Aksenov [Fri, 13 Jan 2017 09:23:38 +0000 (12:23 +0300)]
Replace dlopen() with manually searching link_map
dlopen() leads to running library constructors and other related
stuff which can be undesirable. Now link_map structures are
searched by iterating list of link_maps in _r_debug
Change-Id: Ic9d626cd600fc6596f503c57a765efb7a4740dca
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 29 Dec 2016 13:17:01 +0000 (16:17 +0300)]
Screenshot feature add
Previously it was a part of da_probe_tizen.so, but it was
removed to reduce da_probe_tizen library dependencies.
Change-Id: Ib0cc057a2d6bb87d51b12042555421132b354fea
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 28 Dec 2016 12:42:19 +0000 (15:42 +0300)]
Split screenshots into separate lib
Change-Id: If2fb7b5b649e07cfb9f342b2d8b8d52586a787a6
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 29 Dec 2016 13:04:25 +0000 (16:04 +0300)]
Remove unused declarations from dacapture.h
Change-Id: I1f5403d8a20e7960756e1a082a642e876bc2cc04
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 27 Dec 2016 16:44:32 +0000 (19:44 +0300)]
Remove unused dependencies
Change-Id: Ia9b8c514bf12cd135bd06b60c8f47238c501954d
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 27 Dec 2016 11:50:09 +0000 (14:50 +0300)]
Split graphics, ui and capi probes into separate libs
Change-Id: Ib73f16b6fb2f554042bb8d377f2faa41af23ae89
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 27 Dec 2016 11:57:52 +0000 (14:57 +0300)]
Remove real_functions.c/h
It was legacy mechanism for working with native LD_PRELOAD.
Change-Id: I738cbbbc5e3ce77a3d6039341fbbb7d2745787a4
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Gihun Chang [Mon, 2 Jan 2017 07:11:07 +0000 (16:11 +0900)]
Remove the dependency to debug repository
Change-Id: I7c151372471963c70c22eaa9c8ca37f29c07f03c
Anatolii Nikulin [Tue, 27 Dec 2016 15:40:56 +0000 (18:40 +0300)]
Destroy wayland queue using for capturing screenshots
Change-Id: I9ce1f29ef8cd13e626e57cb2037e3bdd3bfd82c4
Signed-off-by: Anatolii Nikulin <nikulin.a@samsung.com>
Vitaliy Cherepanov [Tue, 27 Dec 2016 08:08:26 +0000 (11:08 +0300)]
Fix memleak in add_binary and remove_binary
Change-Id: I5ffe57492cfd6cf6b8117c9d80bac298191d51f0
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
Ivan Baravy [Thu, 10 Nov 2016 17:33:30 +0000 (20:33 +0300)]
Fix build with GCC6
Change-Id: Id29fed5ead8f12a8ec4b5cd0e70e9b7a39e8413d
Alexander Aksenov [Mon, 12 Dec 2016 11:49:00 +0000 (14:49 +0300)]
Remove UI callbacks from feature probes list
UI event handlers are registered as a common callbacks via
ecore event handlers mechanism. So, these probes are not
require patching their calls in .got section.
Change-Id: I24bf3bd9f96139f3a55e0411b5a7053925e9281e
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Fri, 9 Dec 2016 12:37:11 +0000 (15:37 +0300)]
Remove unused label
Change-Id: I5f8e4efa8b1bdfae88eb9d56aabad49fc94bdb59
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 8 Dec 2016 12:23:05 +0000 (15:23 +0300)]
Fix errno for pthread_exit() probe
Change-Id: I57ae484f8287180d2e6cc1460c6d59f62257dbd5
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 7 Dec 2016 18:57:04 +0000 (21:57 +0300)]
Fix memory allocation for msg data
Previously wrong message have lead to an application fail,
now it leads to error.
Svace issue.
Change-Id: Ibfb62a79df9e47f4b294e40160fb9aad342315ae
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 7 Dec 2016 14:27:04 +0000 (17:27 +0300)]
Remove gesture hash lists
Because they are useless now.
Svace issue.
Change-Id: I7a001718deb464b768249c50155d36a931d27f88
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Dmitry Kovalenko [Fri, 9 Dec 2016 07:54:51 +0000 (10:54 +0300)]
Add BSD-2.0 license
Change-Id: Iedfed71fa5db15d63292185b430060897a2a25ca
Maxim Ostapenko [Wed, 7 Dec 2016 13:18:51 +0000 (16:18 +0300)]
Revert GCC specific changes in LSan code.
Change-Id: I52e3cc2f31e3ea1b2d1da9aca6639a94cd56b42a
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Wed, 7 Dec 2016 12:39:07 +0000 (15:39 +0300)]
Add LICENSE.compiler-rt file for LSan source directory.
Change-Id: If24cd1be428ff20b3862a91dcd1ea7f2459fbece
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Dmitry Kovalenko [Wed, 7 Dec 2016 13:29:46 +0000 (16:29 +0300)]
Add copyright about code copied from wayland
Change-Id: I6729c9fdb7e81d707e780a5b5cd32a16392f8d4b
Maxim Ostapenko [Wed, 30 Nov 2016 14:28:30 +0000 (17:28 +0300)]
Register readable anonymous mappings in root set during LSan initialization.
It appears that EFL (eo) uses anonymous mmaps to allocate internal tables.
These tables would contain pointers to user chunks thus must be added to LSan's
root set. Unfortunately, in general case we cannot identify these mapping, but
we can use heuristic: add all anonymous mappings to root set during LSan
initialization.
Change-Id: I75a43045b12edea631727e2e74be5e3e103f7590
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Vyacheslav Cherkashin [Thu, 24 Nov 2016 16:46:46 +0000 (19:46 +0300)]
capi: fix lifecycle
Now ui_app_main() is caught for all binaries.
Change-Id: Id93a0d4cff75833456fe0727776142ffdc8a3c0b
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Dmitry Kovalenko [Thu, 24 Nov 2016 06:42:51 +0000 (09:42 +0300)]
Fix SVACE issue
- redundant NULL check
Change-Id: I660d96fb63b2d8f1ac86154da564cab6e49dc602
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
Vyacheslav Cherkashin [Tue, 22 Nov 2016 12:32:40 +0000 (15:32 +0300)]
parse_elf: add x86_64 environment support
Change-Id: Ie153edaa89288c0f08dae80f89f45785b0f70368
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
Vitaliy Cherepanov [Fri, 18 Nov 2016 13:11:14 +0000 (16:11 +0300)]
GOT: Disable preload addreses search in libs.
Change-Id: Ie12407557eb5cbcce67f0790bdc107eb6a725675
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vitaliy Cherepanov [Fri, 18 Nov 2016 07:59:16 +0000 (10:59 +0300)]
Fix probe_file probes.
add _IO_putc handler
add _IO_getc handler
add __isoc99_fscanf handler
Change-Id: I119ef385d78aeede45b192ded0a6cde682bc337d
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vitaliy Cherepanov [Fri, 18 Nov 2016 07:55:20 +0000 (10:55 +0300)]
Fix ungetc probe.
wrong probe API id entry packed to trace
Change-Id: I9c3bee3997e86f799b0cf5c41ba428fe70ec6d9f
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vitaliy Cherepanov [Fri, 18 Nov 2016 07:13:48 +0000 (10:13 +0300)]
Refactor PROBES_LIST x-macroses
Change-Id: Ic61ac7975d954e186d2a427159874992ffb95352
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vitaliy Cherepanov [Thu, 10 Nov 2016 15:32:51 +0000 (18:32 +0300)]
Fix file io probes handlers
replace wrong original function calls
Change-Id: Ib9f4810034be9fbda9c56d5985fadf55128f70d4
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Alexander Aksenov [Tue, 15 Nov 2016 12:53:07 +0000 (15:53 +0300)]
GOT patcher: support data.rel.ro
Change-Id: I9b405aa27d80544edc77e688983c5211d6f40a08
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 9 Nov 2016 12:45:47 +0000 (15:45 +0300)]
GOT patcher: add profiling by apps comm
Workaround for web apps
Change-Id: I37d8d5a315da53929b77d1d63e15aaebf5044a57
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Vitaliy Cherepanov [Wed, 9 Nov 2016 12:30:44 +0000 (15:30 +0300)]
Add field with function address to MSG_PROBE_
MSG_PROBE Common columns change:
/---+-------------------+------+------------------\
| n | name | size | change |
|---+-------------------+------+------------------|
| 1 | API ID | 4 | same |
| 2 | PID | 4 | |
| 3 | TID | 4 | |
| 4 | args | var | |
| 5 | return | 8 | |
| 6 | errno | 8 | |
| 7 | Internal call | 4 | |
| 8 | Caller_PC_address | 8 | |
|---+-------------------+------+------------------|
| 9 | reserved | 4 | probe undefined |
| 10| reserved | 4 | instruction addr |
| | | | size 8 bytes |
\---+-------------------+------+------------------/
Change-Id: I290c8aff071d84d7688044686bed268fc52d40c1
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Maxim Ostapenko [Mon, 7 Nov 2016 14:29:16 +0000 (17:29 +0300)]
Add strdup probe.
Currently SWAP doesn't intercept allocation functions coming from Glibc, thus
it misses strdup. However, strdup is one of the most favourite instruments for
introducing memory leaks (developers often forgot to free memory allocated by
strdup). Although the correct fix would be handling all allocations coming from
Glibc, this change is too intrusive now. Thus, just add strdup probe to be able
catch memory leaks, introduced by strdup.
Change-Id: Ibea87ee8b05533fc7230d0d9923c214e9bd0fe97
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Mon, 7 Nov 2016 12:20:03 +0000 (15:20 +0300)]
Fix reallocation bug in LSan.
The LSan library had a bug in realloc interceptor that incorrectly tries to
reallocate LSan owned buffer to Glibc heap and fails. This scenario was
observed in libglib library. Fixing this issue allows us to remove libglib
from ignored libs.
Change-Id: Ifa195307365a1e06210da607239d2594632e0ba0
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Tue, 8 Nov 2016 08:07:27 +0000 (11:07 +0300)]
Fix warnings in LSan code.
Just a small cleanup patch to get rid of compiler warnings.
Change-Id: I3c9bf880e0abb00a884ccc51518b365a7dbf52fd
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Alexander Aksenov [Tue, 8 Nov 2016 11:00:02 +0000 (14:00 +0300)]
Fix svace issues
Change-Id: I957fa6efaaceb9bf2b9a5ab0ba93d8ce39a077cb
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Anatolii Nikulin [Tue, 1 Nov 2016 15:40:49 +0000 (18:40 +0300)]
Fix wayland multithreaded issue
Our thread creates its own private queue for taking screenshots
instead of using wayland default queue, because it may lead to deadlocks
Change-Id: I289ccaa773f990fc8b02e1393b268becfabdb800
Signed-off-by: Anatolii Nikulin <nikulin.a@samsung.com>
Alexander Aksenov [Wed, 19 Oct 2016 09:34:18 +0000 (12:34 +0300)]
GOT patcher: add libglib to ignored
Issue:
libglib leads to a fail when LSan is using GOT patcher.
Solution:
Add libglib to ignored libraries. GOT patcher itself works ok
with this library, so this issue should be investigated in
LSan.
Change-Id: I9006109e299c18059a5a10b7f4c9fd6489a6d41b
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 13 Oct 2016 14:59:06 +0000 (17:59 +0300)]
GOT patcher: support API-by-pointer calls
Issue:
When target API function is called via pointer, not directly,
it was not handled, because symbol was stored in variables section
and not in functions.
Solution:
Patch not only function, but also variable section when variable
name is the same as a target API.
Change-Id: I3178360ddf8d1099e63ec9119d7322e70fefc5f7
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 6 Oct 2016 12:08:50 +0000 (15:08 +0300)]
GOT patcher: add LSan to ignored libs
Issue:
LSan lib as well as another profiler libs should be ignored
by GOT patcher, because their API usage is supposed to be
an auxiliary one.
Solution:
Add LSan library to ignored ones.
Change-Id: If75f79320946b162938edf2148f45eb34631cd5e
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Mon, 3 Oct 2016 14:50:07 +0000 (17:50 +0300)]
GOT patcher: fix memory probes for ARM
Issue;
When profiling ARM console apps, creating receive thread in
swap-probe leads to a fail.
Solution:
Make thread creation arch-depndent: for i386 thread attributes
are inited manually, for ARM default initialization is used.
Change-Id: I495cc21bcaa54b6a8a1956fd5843d6cd63cef7c1
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 27 Sep 2016 12:55:22 +0000 (15:55 +0300)]
GOT patcher: support null program_invocation_name
Change-Id: Iab5db29972ad2e4f698c1401d16d22e3f0f49f9d
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Mon, 26 Sep 2016 17:04:33 +0000 (20:04 +0300)]
GOT patcher: add main binary support
Change-Id: I09681f727165ccbeda199610d96136e227708097
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 21 Sep 2016 17:55:35 +0000 (20:55 +0300)]
GOT patcher: allocate system specified stack size
Change-Id: Ic6db3d50067825077847a94c47391efc27d4a52e
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 15 Sep 2016 13:03:17 +0000 (16:03 +0300)]
GOT patcher: profiling console apps
Change-Id: Ie737aa22490c5a15800e52d3b0664a589594efd6
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 14 Sep 2016 16:13:14 +0000 (19:13 +0300)]
Add initialization pthread_attr struct
Now probe library is loaded very early for common apps
and that time pthread attribute default structure is not
initialized yet, so we do it manually
Change-Id: I7bf62cf6f52b08116aca2436455bf2011ecc5690
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 13 Sep 2016 10:19:19 +0000 (13:19 +0300)]
GOT patcher: separate Event feature
Change-Id: Ibc2153566c117989e5a0a01ee4b8068c089b2bd4
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 31 Aug 2016 16:41:34 +0000 (19:41 +0300)]
GOT patcher: add UIHV lib to ignored
Change-Id: I1709a04180c073adea96a0576bd8d909501bee06
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 23 Aug 2016 13:11:26 +0000 (16:11 +0300)]
GOT patcher: improve cb GL function support
Change-Id: I25b4a9db773f2315e66069d78da3e11149b23c62
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 18 Aug 2016 14:37:20 +0000 (17:37 +0300)]
Fix GOT patcher build for TV
Change-Id: I72252710b64948d2a474f876f8b9570666c765b7
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Thu, 18 Aug 2016 13:00:34 +0000 (16:00 +0300)]
Fix patching malloc in linker on ARM device
Change-Id: Id1711815c3fb8d60d6fad70a3e4ce664ae4d947f
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Wed, 13 Apr 2016 08:42:02 +0000 (11:42 +0300)]
GOT patcher: implement intital version
Change-Id: I8a0f2a590fabcdb439b3ec19c29f269379537b53
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Maxim Ostapenko [Wed, 26 Oct 2016 07:19:07 +0000 (10:19 +0300)]
Fix CHECK failures in LSan from official repositories.
Backported from LLVM mainline: https://reviews.llvm.org/rL285177.
Change-Id: Ife24ccafe0c23379848969d967b1559554874afc
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Mon, 24 Oct 2016 14:16:21 +0000 (17:16 +0300)]
Fix missed runtime dependency from swap-probe to swap-probe-lsan.
Change-Id: Ibe632fcea77af893b80edf5e847c17da40044aff
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Tue, 27 Sep 2016 15:29:54 +0000 (18:29 +0300)]
Add posix_memalign probe.
We need to add posix_memalign probe because libglib-2.0.so uses it for
its own slab allocator. Missing this memory area would cause LSan false
positive reports.
Change-Id: I36a2cabd334d6255e4b403475f18fc991fe58511
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Tue, 27 Sep 2016 15:21:23 +0000 (18:21 +0300)]
Extract information about leaked chunks from da_swap_lsan.so.
Since we want to send information about leaked chunks to host, we need somehow
extract it from liblsan.so. LSan provides couple of hooks to achieve this:
- __lsan_get_leaked_objects_num: returns the number of leaked objects.
- __lsan_get_leaked_objects_ptr: returns a pointer to array of leaked
objects.
Just use these hooks to extract necessary information. When extraction is
completed, notify the host about this.
Change-Id: I8e779368ab440ab02a9ef0db753621720f27ec61
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Wed, 10 Aug 2016 14:43:39 +0000 (17:43 +0300)]
Support LeakSanitizer.
This commit adds support for LeakSanitizer tool spawning from the SWAP
in order to find leaks in user applications. Main changes are:
- Initialize LSan from da_probe_tizen.so constructor.
- Add and use LSan hooks if liblsan.so was successfully loadeded.
- Make evas_object_show probe nonblocking (0 -> 2). This prevents
memory corruptions when Glibc's free tries to free LSan's malloc.
- Introduce new FL_LSAN_ENABLED flag. It activates
pthread_create/pthread_join probes and works together with
FL_MEMORY_ALLOC_ALWAYS_PROBING feature.
- Call try_do_leak_check before application termination.
Change-Id: Ia81f70f666823466888d771054da228772456a62
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Maxim Ostapenko [Wed, 14 Sep 2016 16:54:03 +0000 (19:54 +0300)]
Deliver LeakSanitizer sources.
- Add LSan sources.
- Add "lsan" target to Makefile.
- Add swap-probe-lsan rpm package.
Change-Id: I1ec597755ca5c0f4b0da43c0140fbd6165f27da1
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
Junghyun Kim [Wed, 24 Aug 2016 00:30:18 +0000 (09:30 +0900)]
Use a sorted list of files in __get_libs_in_dir_by_mask to avoid unnecessary rebuilds.
- PROBLEM
We use OBS to build packages in Tizen.
There is a mechanism not to rebuild when the result binary is the same.
For example, there is a dependency graph: A->B->C.
If A is modified, B would be built.
If the result RPM of B is not changed, OBS does not trigger a build of C.
To effectively use this mechanism, each packages make sure that
the result binary should be the same if the input source is the same.
There is a reason we found is that the file list given by
python(os.walk(), os.listdir()), widely used executable(find),
and system call(readdir()) is unordered.
In this case, different OBS workers can make different results
because of the file list in different order.
The same thing happens in swap-probe.
This package uses os.walk(os.path.dirname(path_mask))
in __get_libs_in_dir_by_mask() in scripts/gen_headers.py.
This makes a list libs_in_dir_tmp which is unordered.
- SOLUTION
Therefore, I suggest to sort this list libs_in_dir_tmp using sorted().
I tested this in my test OBS server, and I found that
the result RPMs are the same after this patch.
Change-Id: I78f2df2540b19d6665c0b3d6d6d3d41607e0f90f
Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
Alexander Aksenov [Mon, 29 Aug 2016 10:58:38 +0000 (13:58 +0300)]
Ignore debug binaries in all libs
Change-Id: I312651d8b372559c81a9bf93b1a7f959032ef47f
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Alexander Aksenov [Tue, 16 Aug 2016 08:01:23 +0000 (11:01 +0300)]
Fix null pointer dereference
When parsing elf binary without any symbols previously
null pointer dereference occured.
Change-Id: I67316a8e8e9f4d4d912c518f942468974003453f
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
Dmitry Kovalenko [Wed, 3 Aug 2016 11:52:01 +0000 (14:52 +0300)]
Remove unused source files
Change-Id: Ib17155e05390ee3faa248c488b6c57d2333ddb8b
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
Dmitry Kovalenko [Tue, 12 Jul 2016 13:01:29 +0000 (16:01 +0300)]
Optimize building time
- Use parser library directly from python
- Preprocess library list to remove not libs
- Use more faster commands
- Added x86 library (binary) for using with python-accel
Change-Id: I94202468ae2d5009885b61a8302fcde71dee3e5d
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Vitaliy Cherepanov [Wed, 29 Jun 2016 12:50:07 +0000 (15:50 +0300)]
[FIX] console application instrumentation
Change-Id: Ib1a96b98e0a4f0189000e7fc59082c85d09020d3
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
Dmitry Kovalenko [Fri, 8 Jul 2016 05:05:31 +0000 (08:05 +0300)]
Replace WAYLAND_SUPPORT by TIZEN_FEATURE_WAYLAND
Change-Id: I1de06928a013db311220617141654b4384831fa1
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
Anatolii Nikulin [Wed, 6 Jul 2016 09:42:44 +0000 (12:42 +0300)]
fix screenshots
use tbm buffer for image instead shared memory
Change-Id: I60afc17c92adf39a8e6ef933d43e0b99a425ae93
Signed-off-by: Anatolii Nikulin <nikulin.a@samsung.com>