Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Signed-off-by: Jaehun Jeong <jh4u.jeong@samsung.com>
|
|
Signed-off-by: Jaehun Jeong <jh4u.jeong@samsung.com>
|
|
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>
|
|
Change-Id: I5f8e4efa8b1bdfae88eb9d56aabad49fc94bdb59
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: I57ae484f8287180d2e6cc1460c6d59f62257dbd5
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
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>
|
|
Because they are useless now.
Svace issue.
Change-Id: I7a001718deb464b768249c50155d36a931d27f88
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: Iedfed71fa5db15d63292185b430060897a2a25ca
|
|
Change-Id: I52e3cc2f31e3ea1b2d1da9aca6639a94cd56b42a
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
|
|
Change-Id: If24cd1be428ff20b3862a91dcd1ea7f2459fbece
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
|
|
Change-Id: I6729c9fdb7e81d707e780a5b5cd32a16392f8d4b
|
|
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>
|
|
Now ui_app_main() is caught for all binaries.
Change-Id: Id93a0d4cff75833456fe0727776142ffdc8a3c0b
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
|
|
- redundant NULL check
Change-Id: I660d96fb63b2d8f1ac86154da564cab6e49dc602
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
|
|
Change-Id: Ie153edaa89288c0f08dae80f89f45785b0f70368
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
|
|
Change-Id: Ie12407557eb5cbcce67f0790bdc107eb6a725675
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
|
|
add _IO_putc handler
add _IO_getc handler
add __isoc99_fscanf handler
Change-Id: I119ef385d78aeede45b192ded0a6cde682bc337d
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
|
|
wrong probe API id entry packed to trace
Change-Id: I9c3bee3997e86f799b0cf5c41ba428fe70ec6d9f
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
|
|
Change-Id: Ic61ac7975d954e186d2a427159874992ffb95352
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
|
|
replace wrong original function calls
Change-Id: Ib9f4810034be9fbda9c56d5985fadf55128f70d4
Signed-off-by: Vitaliy Cherepanov <v.cherepanov@samsung.com>
|
|
Change-Id: I9b405aa27d80544edc77e688983c5211d6f40a08
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Workaround for web apps
Change-Id: I37d8d5a315da53929b77d1d63e15aaebf5044a57
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
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>
|
|
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>
|
|
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>
|
|
Just a small cleanup patch to get rid of compiler warnings.
Change-Id: I3c9bf880e0abb00a884ccc51518b365a7dbf52fd
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
|
|
Change-Id: I957fa6efaaceb9bf2b9a5ab0ba93d8ce39a077cb
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Change-Id: Iab5db29972ad2e4f698c1401d16d22e3f0f49f9d
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: I09681f727165ccbeda199610d96136e227708097
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: Ic6db3d50067825077847a94c47391efc27d4a52e
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: Ie737aa22490c5a15800e52d3b0664a589594efd6
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
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>
|
|
Change-Id: Ibc2153566c117989e5a0a01ee4b8068c089b2bd4
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: I1709a04180c073adea96a0576bd8d909501bee06
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: I25b4a9db773f2315e66069d78da3e11149b23c62
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: I72252710b64948d2a474f876f8b9570666c765b7
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: Id1711815c3fb8d60d6fad70a3e4ce664ae4d947f
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Change-Id: I8a0f2a590fabcdb439b3ec19c29f269379537b53
Signed-off-by: Alexander Aksenov <a.aksenov@samsung.com>
|
|
Backported from LLVM mainline: https://reviews.llvm.org/rL285177.
Change-Id: Ife24ccafe0c23379848969d967b1559554874afc
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
|
|
Change-Id: Ibe632fcea77af893b80edf5e847c17da40044aff
Signed-off-by: Maxim Ostapenko <m.ostapenko@samsung.com>
|
|
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>
|
|
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>
|
|
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>
|
|
- 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>
|