Mateusz Moscicki [Wed, 14 Feb 2018 07:17:02 +0000 (08:17 +0100)]
crash-stack: fixed copying data from bufferfile to outputfile
Reading the last chunk of data sets the feof indicator.
Change-Id: I396a3d6e1c398c7201ef8bc7dfa1ec9c1b7ddb8a
Michal Bloch [Thu, 28 Sep 2017 14:38:52 +0000 (16:38 +0200)]
Improve error handling
* handle reallocation failures in scan dump.
* generate a log if unlinking a failed dump file also fails
* fix a memory leak when passing duplicate `--save-core` parameter to crash-pipe; generate a log in that case
* explicitly free a resource on exit
Change-Id: I71b22b3375c6c9ab9a43dab41e80eadc3fa599f6
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
Karol Lewandowski [Thu, 28 Sep 2017 14:59:53 +0000 (14:59 +0000)]
Merge "svace fixes: insufficient error handling" into tizen
Karol Lewandowski [Tue, 26 Sep 2017 11:29:32 +0000 (13:29 +0200)]
svace fixes: insufficient error handling
This commit brings fixes for folowing SVACE-reported issues:
* UNCHECKED_FUNC_RES.FREAD: Return value of fread function was compared to zero at crash-stack.c:836, but ferror/feof wasn't called.
Result was compared with zero at /home/abuild/rpmbuild/BUILD/crash-worker-1.0.1/src/crash-stack/crash-stack.c:836
* HANDLE_LEAK: The handle 'fd' was created at crash-manager.c:508 by calling function 'open' and lost at crash-manager.c:515.
[acquire] Call of open at /home/abuild/rpmbuild/BUILD/crash-worker-1.0.1/src/crash-manager/crash-manager.c:508
[leaked] leaked at /home/abuild/rpmbuild/BUILD/crash-worker-1.0.1/src/crash-manager/crash-manager.c:515
* DEREF_OF_NULL.CONST: Pointer '&tail->next', which was assigned NULL value at crash-stack.c:642, is dereferenced at crash-stack.c:692.
[dereference] Variable '&tail->next' is dereferenced at /home/abuild/rpmbuild/BUILD/crash-worker-1.0.1/src/crash-stack/crash-stack.c:692
[null] Assign null at /home/abuild/rpmbuild/BUILD/crash-worker-1.0.1/src/crash-stack/crash-stack.c:642
* RACE.NO_UMASK: Function 'umask(077)' needs to be called before 'mkstemp' at crash-stack.c:964, to prevent a potential race condition vulnerability.
function call at /home/abuild/rpmbuild/BUILD/crash-worker-1.0.1/src/crash-stack/crash-stack.c:964
Change-Id: Ief6dd93ec8d795fccffbc2d823a6af8fcf63c965
Kichan Kwon [Thu, 28 Sep 2017 01:46:21 +0000 (10:46 +0900)]
dump_systemstate : add journal log
- Log only latest 1024 logs from last boot
Change-Id: I535402a6807d2c4a21fb08a2ba874473f49045f6
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
Sunmin Lee [Wed, 13 Sep 2017 05:36:18 +0000 (14:36 +0900)]
Fix bugs
- Fix misspelling for m4 condition
- Do not install unused services: tizen-debug-on/off
Change-Id: I09296e1365407c93ebb6dd9897ccc5b9e346bddd
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Tue, 12 Sep 2017 07:28:52 +0000 (16:28 +0900)]
Remove unused file
Remove unused file
Change-Id: Iabe9ee9e49cf9f4272c3a3691f48f3c75ff0a281
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
ByungSoo Kim [Mon, 21 Aug 2017 14:24:00 +0000 (23:24 +0900)]
log_dump: assign CAP_SYS_PTRACE capability
When log_dump has system_fw permission,
memps which is forked from /usr/bin/dump_systemstate can't read
/proc/self/maps and /proc/self/smaps.
It requires CAP_SYS_PTRACE capability.
So, it should have CAP_SYS_PTRACE capability and inheritance attribute.
Change-Id: If2bd16964dba8e616e4a4fcc5cd489feb4c40b21
Signed-off-by: ByungSoo Kim <bs1770.kim@samsung.com>
minsoo kim [Mon, 21 Aug 2017 05:49:32 +0000 (14:49 +0900)]
crash-worker: add dump_systemstate memps
Change-Id: I50fbdc296a0ab8dfab96cfde29b0c3afa94eb1e7
Signed-off-by: minsoo kim <ms203.kim@samsung.com>
minsoo kim [Mon, 3 Jul 2017 05:04:22 +0000 (14:04 +0900)]
crash-worker: add supplementarygroups log systemd-journal
To gather dlog, journal log, add supplementarygroups to service
But dbus activation not applied suppplementarygroup,
So rearrange service role
org.tizen.system.crash.service : dbus activation
log_dump.service : log_dump daemon
Change-Id: I93e2bb5142a83f6dfa9ad56197916855988501ee
Signed-off-by: minsoo kim <ms203.kim@samsung.com>
minsoo kim [Wed, 10 May 2017 02:09:09 +0000 (11:09 +0900)]
crash-worker: change permission to none root process
for reduce root permission, change to system_fw
Change-Id: I04fafa89d2a4e0a1e3bc5a6e0019b2aebb428235
Signed-off-by: minsoo kim <ms203.kim@samsung.com>
Sunmin Lee [Wed, 9 Aug 2017 10:38:41 +0000 (19:38 +0900)]
Apply ASLR to executables: crash-pipe, crash-stack
Change-Id: Ia4a0452832a705f6fbac8034d7da93297883e4bc
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Karol Lewandowski [Tue, 23 May 2017 13:01:36 +0000 (15:01 +0200)]
packaging: Disable sys-assert
Ptrace-based mechanism (crash-stack) should be used as default
and only mechanism for crash-report generation.
Change-Id: I102fc02e5538dcf9f21d7b72ff8892e1b3500265
Kunhoon Baik [Tue, 27 Jun 2017 07:07:40 +0000 (16:07 +0900)]
Preparation of debug & release package
Some vendor would like to have different crash management policy for debug and release image.
Thus, Tizen will provide crash-manager debug and release package.
This patch is the preparation for the package separation.
In case of crash-manager debug, following CFLAGS will be enabled.
export CFLAGS+=" -DTIZEN_ENGINEER_MODE"
export CFLAGS+=" -DTIZEN_ENABLE_COREDUMP"
In the future, export CFLAGS+=" -DTIZEN_DEBUG_ENABLE" may be added.
Basically, default Tizen image will include crash management policy for debug mode.
cf) .debugmode file will be used for just crash-popup control for 3.0 compatibility.
Change-Id: I892d1f0d5de65da0abb3e002fa235989f43def56
minsoo kim [Fri, 26 May 2017 09:58:35 +0000 (18:58 +0900)]
log_dump: selective mode for dbus activation
log_dump running root in debug mode, and none_root with normal mode.
Simplify org.tizen.system.crash.service conditional compile by using m4
Change-Id: I04b734f722266264434b27e9fe7b17cdc73263f1
Signed-off-by: minsoo kim <ms203.kim@samsung.com>
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Fri, 9 Jun 2017 03:58:48 +0000 (12:58 +0900)]
Adjust buffer size for address
The addr gets string of address consisting of begin/end
address and '-', null character.
So the length of addrees buffer should be set to:
ADDR_LEN * 2 + 2 (at least)
Change-Id: I6cdb8530be50c4c29fbb51a5dcb5fa8e094e5352
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Thu, 8 Jun 2017 05:05:57 +0000 (14:05 +0900)]
Fix sscanf vulnerability
Specify a limit on the input string length
and keep the last byte for null character.
Change-Id: I717ac2ae565f2627e5de26426ec24c6ccf772c5e
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Karol Lewandowski [Tue, 16 May 2017 13:25:06 +0000 (15:25 +0200)]
crash-stack: Fix Tizen Coding Style violations
Rules at: https://wiki.tizen.org/wiki/Native_Platform_Coding_Idiom_and_Style_Guide
This commit brings no functional changes.
Change-Id: Ic95fd2d1e5508d602fa24ea33933448c52ce625d
Karol Lewandowski [Thu, 11 May 2017 13:47:18 +0000 (15:47 +0200)]
crash-stack: Change "ThreadID" heuristic to work on aarch64
Commit
82e3caa86 ("crash-stack: Find crashed tid by wchan")
introduced heuristic method of finding correct thread id, if
it was not passed by the kernel as parameter to crash-manager.
This commit modifies this heuristic to also consider "pipe_wait"
function in kernel to signify crashed thread. This is what was
observed to be true on aarch64.
Change-Id: Iefa6d028f459ff9491f8e184433f913f39a096eb
Karol Lewandowski [Fri, 5 May 2017 13:03:20 +0000 (15:03 +0200)]
crash-worker: Generate core only if /opt/etc/.debugmode file is present
Additionally, this patch moves actual path definition to one place.
Change-Id: I984ac2c67d8a22ed749f2b1945a1cef237b88ace
Karol Lewandowski [Tue, 25 Apr 2017 06:48:19 +0000 (06:48 +0000)]
Merge "Removing dependency of tizen-debug-on/off service from sys-assert" into tizen
Karol Lewandowski [Mon, 24 Apr 2017 15:34:18 +0000 (17:34 +0200)]
Removing dependency of tizen-debug-on/off service from sys-assert
Tizen-debug-on/off service should control enabling/disabling coredump generation.
When Tizen-debug-off service is executed, only callstack should be generated.
Thus, although disabling sys-assert, the services should be remained.
TODO : For disabling sys-assert, the services should be changed properly.
Change-Id: I617356cd31b51dbe4f103cb3118fefe454e717db
Karol Lewandowski [Sat, 22 Apr 2017 10:47:35 +0000 (10:47 +0000)]
Merge "spec: change group(system -> root) on tizen-debug-off.[service|socket]" into tizen
INSUN PYO [Thu, 20 Apr 2017 05:09:37 +0000 (14:09 +0900)]
spec: change group(system -> root) on tizen-debug-off.[service|socket]
Signed-off-by: INSUN PYO <insun.pyo@samsung.com>
Change-Id: I32605d431b3ff16cce61ae2dde7be262a1eac56f
Karol Lewandowski [Wed, 15 Mar 2017 15:43:03 +0000 (16:43 +0100)]
crash-pipe: Drop all reporting functionality
Reporting is handled by crash-stack.
Change-Id: I6066c5a414fd2e98efbcc0ddc57f2f967cbfb859
Karol Lewandowski [Wed, 15 Mar 2017 15:39:51 +0000 (16:39 +0100)]
crash-pipe: Introduce option to copy core using splice(2)
Linux splice(2) avoids user-space copy and is effectively faster than
regular read(2) + write(2).
According to (ftrace) test below splice is about 20% faster.
sysctl -w kernel.core_pattern='|/usr/libexec/core-pipe --save-core /opt/usr/share/temp/core.%p'
cd /sys/fs/kernel/tracing/
echo do_coredump > set_ftrace_filter
echo function_graph > current_tracer
cat trace_pipe
/* splice */
2) $ 2183078 us | } /* do_coredump */
4) $ 2127946 us | } /* do_coredump */
1) $ 2377004 us | } /* do_coredump */
1) $ 2088114 us | } /* do_coredump */
/* read/write */
1) $ 3088297 us | } /* do_coredump */
1) $ 2953330 us | } /* do_coredump */
1) $ 2647784 us | } /* do_coredump */
3) $ 2271315 us | }
Change-Id: Id2c681a364ce96d98c70329abdf4a64f6d0b405d
Karol Lewandowski [Tue, 18 Apr 2017 13:00:30 +0000 (15:00 +0200)]
Merge branch 'tizen_3.0'
This commit brings followings fixes from tizen_3.0 branch:
- Fallback to ptrace call-stack unwinder if sys-assert failed
- libunwind: Fix off by one in _create_crash_stack
- sys-assert: Fix handle leak of mmap
Change-Id: I422c4ddff0fb4dfb72738d70a7170080304081dd
Karol Lewandowski [Fri, 14 Apr 2017 07:36:14 +0000 (09:36 +0200)]
crash-stack: Eliminate now-deprecated readdir_r
This commit fixes build break with new toolchain.
Glibc 2.24 deprecated readdir_r() - readdir() now recommended even
for multithreaded programs. This commit fixes following error:
/home/abuild/rpmbuild/BUILD/crash-worker-1.0.0/src/crash-stack/crash-stack.c: In function 'find_crash_tid':
/home/abuild/rpmbuild/BUILD/crash-worker-1.0.0/src/crash-stack/crash-stack.c:891:4: error: 'readdir_r' is deprecated [-Werror=deprecated-declarations]
while (readdir_r(dir, &entry, &dentry) == 0 && dentry) {
^~~~~
Change-Id: I99f22a0de87f2539988e1669ae2149dcac74a4df
Sunmin Lee [Wed, 5 Apr 2017 07:53:29 +0000 (16:53 +0900)]
sys-assert: Fix handle leak of mmap
Unmap the memory after using it if it was mmaped.
Change-Id: Ia567c165ac09308a57ae8bb5eac4a9a2a524ec15
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Mon, 3 Apr 2017 01:27:39 +0000 (10:27 +0900)]
Revert "Separate logdump from crash-worker"
This reverts commit
c7826eefdccc5776eb0665cb0feb5d060e69fe96.
Change-Id: I398cf722d445b037d32d8116cc9c18a3a326b673
Karol Lewandowski [Tue, 7 Mar 2017 15:13:18 +0000 (16:13 +0100)]
Fallback to ptrace call-stack unwinder if sys-assert failed
This commit enables ptrace-based call stack unwinder
(TIZEN_FEATURE_PTRACE_CALLSTACK).
When both SYS_ASSERT and PTRACE flavors are enabled
crash-manager will default to SYS_ASSERT, and fallback
to PTRACE only if former failed to generate the report
(eg. client application overwriten libsysassert's
signal handlers).
Change-Id: Ifc3626b7b46f47c3fd68efcb18d3900908ce3884
Karol Lewandowski [Wed, 8 Mar 2017 15:23:52 +0000 (16:23 +0100)]
libunwind: Fix off by one in _create_crash_stack
This fixes call stack missing last element (usually _start,
in the case of invalid PC - the PC itself).
Change-Id: Ib1dae12bd06f1a4dfa1339fa6ea704bff05926c9
Sunmin Lee [Tue, 28 Feb 2017 06:02:25 +0000 (15:02 +0900)]
Separate logdump from crash-worker
In Tizen 4.0, the log_dump tool is supposed to be managed
in separate package.
Change-Id: Ie45cfdd9ee0530ef2e520ac781e9971120c87aeb
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Fri, 24 Feb 2017 02:27:58 +0000 (11:27 +0900)]
Merge branch 'tizen_3.0' into tizen
Change-Id: I56715923d0ac0257736598e711d2c113548372cb
Sunmin Lee [Tue, 21 Feb 2017 05:02:20 +0000 (14:02 +0900)]
Fix vulnerability
- Enforce read size of read() less than buffer
- Do null check about opened bufferfile
Change-Id: Ie7d43eb1b04e68e03e97d5e9fed75aee669bfd0a
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Tue, 21 Feb 2017 01:07:11 +0000 (10:07 +0900)]
Execute dump_systemstate in parallel
Since rearrange the order of crash modules, coredump had made
too late. It has caused several issues such as missing coredump
when something happened during dump_systemstate.
Therefore, execute dump_systemstate in parallel.
In addition, to avoid confusing launch crash-popup right after
whole crash works are finished.
Change-Id: I73c10c7d60f04d218f313b760c0381d0b8d95de7
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Mon, 20 Feb 2017 09:46:44 +0000 (18:46 +0900)]
crash-stack: Get executable name from cmdline
The executable name in crash-stack is different with sys-assert.
In case of some applications, "exe" has indicated real path of app
that makes it hard to know what the actual app name is.
It's better to refer to "cmdline" instead.
Change-Id: I4895dbce427d50cd20a593585f2640554a4268fc
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Wed, 28 Dec 2016 08:03:36 +0000 (17:03 +0900)]
Print pre-ptrace info to buffer file
Some information had lost after ptrace.
However, the order of info also should be preserved.
To resolve this, that information are going to be printed
to temporal space first and will be merged in result file.
Change-Id: I523ded4ffc15b5edeac1944b62b5a42a5a44bc83
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Fri, 6 Jan 2017 00:37:33 +0000 (09:37 +0900)]
crash-stack: Find crashed tid by wchan
If tid is not offered by kernel, crash-stack would
find crashed tid by checking wchan value of each thread.
Change-Id: Idfd6866fe17af4c7a266b3ae127e39087b0848f0
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Mon, 9 Jan 2017 05:03:34 +0000 (14:03 +0900)]
crash-manager: Utilize cmdline instead of core_pattern
There are limitations on using core_pattern variables to get command info.
%e: *its length is limited (up to 16 byte)
%E: in case of some applications, it returns not actual app binary path
(it returns launchpad-loader)
Because of these reasons, use cmdline of /proc instead to get command info.
(It also makes a consensus with sys-assert)
* Refer to: http://lxr.free-electrons.com/source/include/linux/sched.h#L1663
Change-Id: Ie486785485e4bcee2c62fb1e4fa98329d0f01170
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Wed, 15 Feb 2017 07:27:57 +0000 (16:27 +0900)]
Set suid_dumpable to debug (1)
As a platform policy, Tizen offers core dumping for
all process by default. However, until now some process
has got cleared dump flag by the system.
We modify it to these processes also could be dumpable.
Change-Id: I2f8fb6a76b891f4ce6af97349ab963ef5c8183fc
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Łukasz Stelmach [Wed, 1 Feb 2017 13:58:04 +0000 (14:58 +0100)]
crash-stack: Make output match sys-assert report
Change-Id: I7ecc9b045cc9b83d328d1d97bb08d4174c9d72ba
Adrian Szyndela [Mon, 2 Jan 2017 14:03:58 +0000 (15:03 +0100)]
crash-stack: remove the core dump handling remains
Hopefully, there is no more rotting flesh.
Change-Id: I59003e8a38dd2817f78d23319848273615a0a5be
Adrian Szyndela [Mon, 2 Jan 2017 13:37:54 +0000 (14:37 +0100)]
crash-stack: add file offset to output
Change-Id: Ib9f77b61d98a60e192877fad965a30ad8730af2f
Rafal Pietruch [Fri, 30 Dec 2016 07:38:29 +0000 (08:38 +0100)]
crash-stack: disable unw_get_proc_name prediction
libunwind unw_get_proc_name function may return the name of
a label or a preceeding, nearby procedure; although the value
of the returned name plus the returned offset will
be equal to the instruction-pointer of the stack frame,
developers can find a exact symbol with related code position
in debug packages
Change-Id: I2471c2a9483b577844110f25128a6d539d39e5ad
Rafal Pietruch [Wed, 21 Dec 2016 16:39:01 +0000 (17:39 +0100)]
crash-stack: integration test added
Change-Id: Iaac051671b89018dda37c212bb1c9da756879ed4
Sunmin Lee [Wed, 18 Jan 2017 05:23:37 +0000 (14:23 +0900)]
(Modified) Deal with Toolchain upgrade
(Revert "Deal with Toolchain upgrade")
This patch substitutes deprecated function "readdir_r" with "readdir"
rather than ignoring warning.
Change-Id: I3b4d3f9c28cc60c851f30332aa88780078471085
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Mon, 2 Jan 2017 04:26:55 +0000 (13:26 +0900)]
Deal with Toolchain upgrade
According to Tizen toolchain will be upgraded in 4.0,
several build issues should be resolved.
This patch deals with "Language rules stricting".
Change-Id: I1993fb3b2a285c341f8b8b92ec32a428704ddc5a
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Fri, 30 Dec 2016 00:59:56 +0000 (09:59 +0900)]
Merge branch 'tizen_3.0' into tizen
Change-Id: I62eb5bc520f06ea0daa13a7de4c3364d0a12695d
Sunmin Lee [Wed, 28 Dec 2016 05:35:13 +0000 (14:35 +0900)]
Change internal modules work
- crash-pipe: create core file only
- crash-stack: create .info file (call-stack)
Change-Id: I71ba012f426e5d055f3acfc2b2820b5fcb2e17ec
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Wed, 28 Dec 2016 01:20:32 +0000 (10:20 +0900)]
Fix vulnerability
Check range of signo before use it
Change-Id: Icae63a7185a897ba6688b45715b208c2d92df1b7
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Kunhoon Baik [Tue, 27 Dec 2016 13:00:35 +0000 (22:00 +0900)]
crash-stack: libunwind used on aarch64
Make use of "ptrace: Add support for GETREGSET" patch to libunwind
https://lists.nongnu.org/archive/html/libunwind-devel/2016-07/msg00001.html
Depends-On: I2e720e6697fbc1facf1d7547b398f5665b17731e
Change-Id: I0ce3886d271c9b78d2a44b99a628ccc502e6e400
Sunmin Lee [Tue, 27 Dec 2016 05:49:41 +0000 (14:49 +0900)]
crash-stack: Simplify signal info
It is hard to get signal info which caused dump using ptrace.
Therefore, crash-stack prints signal number only
which came from core_pattern.
Change-Id: I6cd865a89d3e2c5dd83cfe134bb8cddec4f7f81f
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Tue, 27 Dec 2016 11:15:52 +0000 (20:15 +0900)]
Remove PD License
Change-Id: Iaa3daf6bf96c5ae59ad77515a0f942f4d4a71586
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Tue, 27 Dec 2016 10:33:55 +0000 (19:33 +0900)]
Adjust smack label
In response to security issue, restrict smack label of crash-manager.
In addition, adjust crash directories label to accord with
work of crash-worker.
Change-Id: I97390d50337fd36a746e260f3f6ebc29c6990526
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Tue, 27 Dec 2016 10:48:51 +0000 (02:48 -0800)]
Merge "log_dump: Restrict dbus permission" into tizen_3.0
Sunmin Lee [Tue, 27 Dec 2016 07:44:49 +0000 (16:44 +0900)]
Separate package dependencies of crash-stack
According to experimental variable, exclude unused package
dependencies from crash-worker.spec.
+ Bug fix:
"crash-stack: Make ptrace callstack feature selective"
Change-Id: If8746a74fb937f7929538a995d6f1cf392e19bd4
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Tue, 27 Dec 2016 02:25:12 +0000 (11:25 +0900)]
log_dump: Restrict dbus permission
log_dump can be activated using dbus method call.
Because this feature should be used by administrator only,
restrict the dbus activation permission.
Change-Id: Ib63ea10fd5101af146e35cf9ef47e96f91a3229f
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Mon, 26 Dec 2016 11:31:43 +0000 (20:31 +0900)]
crash-stack: Make ptrace callstack feature selective
In Tizen 3.0, the crash-stack using ptrace to generate callstack
will be offered as a choice.
Developers can enable this feature through setting a variable as on:
TIZEN_FEATURE_PTRACE_CALLSTACK
Change-Id: I7dfbf563144174abcd5e50677eb8943cdb8d8ebe
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Kunhoon Baik [Mon, 4 Jul 2016 11:01:31 +0000 (20:01 +0900)]
Remove SIGSEGV handling
SIGSEGV (signal number - 11) may occur double crash when sys-assert tries to unwind backtrace.
like that
If the double crash is generated, it causes useless backtrace of corefile (double crashed memory dump)
Thus, sys-assert does not handle SIGSEGV.
Change-Id: I826ee2bab796fc87b2b4a003683315514af96339
Sunmin Lee [Thu, 22 Dec 2016 08:58:58 +0000 (17:58 +0900)]
Fix handle leak
Fix handle leak of file pointer at crash-stack
Change-Id: I2d68e04ad84ea7263e3c45cc91ef295557532bde
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Karol Lewandowski [Tue, 20 Dec 2016 17:33:58 +0000 (09:33 -0800)]
Merge "crash-stack: use libunwind for i686 and x86_64" into tizen_3.0
Karol Lewandowski [Tue, 20 Dec 2016 16:23:33 +0000 (08:23 -0800)]
Merge "crash-stack: fixed attaching to thread" into tizen_3.0
Rafal Pietruch [Thu, 15 Dec 2016 15:28:17 +0000 (16:28 +0100)]
crash-stack: use libunwind for i686 and x86_64
Change-Id: I0022cc3ac772ba26ed67f7d64d45c3ab4e22db88
Adrian Szyndela [Fri, 16 Dec 2016 12:27:35 +0000 (13:27 +0100)]
crash-stack: fixed attaching to thread
It is not necessary to attach to parent process main thread to
resolve stack in another thread. This commit also solves hanging up
on 'D' (and 'Z') processes - main thread is not attachable,
when a crash occurs in another thread.
Change-Id: Ic3a085951acb4057fcdd4a476693954d1d3a522b
Sunmin Lee [Mon, 19 Dec 2016 06:26:30 +0000 (15:26 +0900)]
crash-manager: consider backward compatibility for crash-stack
Though the crash-stack is available about tid option,
previous kernel has not supported this feature.
Therefore the crash-manager should call crash-stack
considering backward compatibility.
Change-Id: I779783ed46760b88a6d454a05710b29cd4418a44
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Sunmin Lee [Tue, 20 Dec 2016 09:41:00 +0000 (18:41 +0900)]
crash-stack: deprecate corefile option
crash-stack should be able to generate call stack
using pid only.
(Generating corefile causes sluggish issue)
Change-Id: Ie9e74494b966838d1dd6548424d51bfd2df4c1e0
Sunmin Lee [Thu, 15 Dec 2016 02:26:38 +0000 (11:26 +0900)]
Revert "engineer mode: make .debugmode on engineer image"
.debugmode is moved to other package
This reverts commit
b153665a12cda6a29f9ba9d12db7f2682ade9af5.
Change-Id: Idfe9cae63b8f4e4122c74abb144250eea45d9f07
Adrian Szyndela [Thu, 15 Dec 2016 12:03:21 +0000 (13:03 +0100)]
crash-stack: get registers from tid instead of pid
Change-Id: Id4ea3f57808420ec6ac0941c2612a5af51136c96
Adrian Szyndela [Tue, 13 Dec 2016 13:43:06 +0000 (14:43 +0100)]
crash-stack: work around hanging up on 'D' processes
Processes in uninterruptible sleep state ('D' status in ps)
cannot be ptraced until they leave the state. To prevent
hanging up of crash-stack, we check the target process state.
If it is 'D', then we give up ptracing it, and instead
print the information from /proc/<pid>/wchan, /proc/<pid>/syscall
and /proc/<pid>/stack.
Change-Id: I82644051a5499c42db2a8e51a7af98693e8da363
Karol Lewandowski [Wed, 14 Dec 2016 16:53:05 +0000 (17:53 +0100)]
crash-stack: Drop duplicate call stack footer
Change-Id: I938f2ead95d312450edb853740cce47becf796fc
Łukasz Stelmach [Wed, 14 Dec 2016 16:30:54 +0000 (17:30 +0100)]
crash-stack: print memory information
Print information from /proc/meminfo and /proc/PID/status
Change-Id: I6c66e9ee6c8eca20a8925e9ecc23e09c0dabcb25
Łukasz Stelmach [Wed, 14 Dec 2016 16:28:10 +0000 (17:28 +0100)]
crash-stack: change error reporting file handle
Change-Id: I734b431f56f9e32c440839e1bd4e5b90112773ec
Łukasz Stelmach [Wed, 14 Dec 2016 14:06:43 +0000 (15:06 +0100)]
crash-stack: print maps information
Print information about mapped memory regions.
Add stub for printing system and process VM information.
Change-Id: I47b2c5f837620f9d22b3270a75d8f5e663d44c78
Łukasz Stelmach [Wed, 14 Dec 2016 15:26:54 +0000 (16:26 +0100)]
crash-stack: print executable file path
Change-Id: Ib5946bcfb5bbad8af7b7bbfc7c8568a3cb3ab207
Adrian Szyndela [Wed, 14 Dec 2016 13:52:37 +0000 (14:52 +0100)]
crash-stack: support for resolving stack from threads
Change-Id: Ic80b6b83acb80b3c332b6b6674fbf662b1003586
Adrian Szyndela [Wed, 14 Dec 2016 07:16:22 +0000 (08:16 +0100)]
crash-stack: put more effort into getting names
It seems libdwfl-0.153 sometimes can't get symbol names
automatically. This commit adds fallback procedure, that
takes module name and mapping provided by libdwfl,
and - using libelf - looks for the symbol name, instead
of relying only on libdwfl.
Change-Id: I7e65f810b46dc43bea217b715852a5ae5c3d70c9
Rafal Pietruch [Wed, 14 Dec 2016 12:11:12 +0000 (13:11 +0100)]
crash-stack: reformat callstack output
Change-Id: Ica727d63de389d8a4a2f1ff7cfced2a463630282
Karol Lewandowski [Wed, 14 Dec 2016 15:45:12 +0000 (07:45 -0800)]
Merge "crash-stack: resolving symbols extracted from printing function" into tizen_3.0
Karol Lewandowski [Wed, 14 Dec 2016 15:44:42 +0000 (07:44 -0800)]
Merge "crash-stack: print information about threads" into tizen_3.0
Rafal Pietruch [Wed, 14 Dec 2016 07:17:39 +0000 (08:17 +0100)]
crash-stack: resolving symbols extracted from printing function
Change-Id: I0ae01bc7a2a9a0e6f084a9e275e1025058645c77
Karol Lewandowski [Wed, 14 Dec 2016 15:11:37 +0000 (07:11 -0800)]
Merge "crash-manager: pass tid number to identify failing thread" into tizen_3.0
Karol Lewandowski [Wed, 14 Dec 2016 15:11:09 +0000 (07:11 -0800)]
Merge "tests: Add a test program for crashing with threads" into tizen_3.0
Karol Lewandowski [Wed, 14 Dec 2016 15:10:59 +0000 (07:10 -0800)]
Merge "crash-stack: align output format with sys-assert" into tizen_3.0
Łukasz Stelmach [Wed, 14 Dec 2016 13:51:14 +0000 (14:51 +0100)]
crash-stack: print information about threads
Change-Id: Ib0e2d9c2bdbd5fd4eacc0608a8c5ecccdfd4f2a8
Łukasz Stelmach [Tue, 13 Dec 2016 15:03:49 +0000 (16:03 +0100)]
crash-manager: pass tid number to identify failing thread
Accept tid as second argument for crash-manager and pass it to
crash-stack.
Change-Id: Icfc0db6f5675eb781777ea7a7c5dc2d4cb581105
Łukasz Stelmach [Tue, 13 Dec 2016 13:01:19 +0000 (14:01 +0100)]
tests: Add a test program for crashing with threads
Change-Id: I0b9ef8567b0bb1203fdd9fe3e0aa753e25ff50df
Sunmin Lee [Wed, 14 Dec 2016 03:51:31 +0000 (12:51 +0900)]
crash-manager: make secure program
- Use secure function (strncat)
- Prevent buffer overrun
Change-Id: I47acf1bb39c0be123a486116f811b78f30d6ff01
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Łukasz Stelmach [Tue, 13 Dec 2016 09:33:24 +0000 (10:33 +0100)]
crash-stack: align output format with sys-assert
Make crash-stack print register information the very same way as
sys-assert does it.
Change output format slightly for 64 bit architectures to match hw
requirements.
Support both i686 and x86_64 in the same architecture specific file.
Change-Id: Ica03360b61c1aa133b83c5622334cf4f375db3c2
Łukasz Stelmach [Fri, 9 Dec 2016 14:06:14 +0000 (15:06 +0100)]
Update authorship information
Change-Id: I064948790ce22c0167ce6986a4d0a0e78fd974ab
Rafal Pietruch [Mon, 12 Dec 2016 16:19:07 +0000 (17:19 +0100)]
crash-stack: separate libunw code
Change-Id: I1f24781316a78439db862c3ab0d2492fea095c1c
Rafal Pietruch [Fri, 9 Dec 2016 14:04:03 +0000 (15:04 +0100)]
crash-stack: add symbol resolution for arm
Change-Id: Iabb556a96907156a9b8775cdb25281dea560ce69
Rafal Pietruch [Fri, 9 Dec 2016 14:02:57 +0000 (15:02 +0100)]
use libunwind for ARM in case of McTernan unwinder
Change-Id: I6fb6f95df6f09a1b4c7e38489606aaab1e452e59
Kunhoon Baik [Tue, 13 Dec 2016 04:27:31 +0000 (13:27 +0900)]
Resolve crash-stack build issue in emulator
32 bit: Add stub function for _crash_stack_print_regs
64 bit: correct output format specifier
Change-Id: I4d95ab2ebee9c86a4fa05015f6ca5b3ccc8ea151
Kunhoon Baik [Tue, 13 Dec 2016 03:34:28 +0000 (19:34 -0800)]
Revert "crash-pipe: read and parse core"
This reverts commit
b3661520e5b660ce7352381e6bfa5d25647357e4.
Change-Id: I01557e7b7bf4ed5f8c278e2e168d8aaa04f8d49e
Sunmin Lee [Mon, 12 Dec 2016 04:51:13 +0000 (13:51 +0900)]
crash-manager: change default configuration values to unlimited
For ease of debugging, default values of coredump configuration
are changed to 0 (unlimited).
Change-Id: I53188215b55e98acd6aac835195697cbda50b0ae
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
Łukasz Stelmach [Fri, 2 Dec 2016 12:20:39 +0000 (13:20 +0100)]
tests: add a glib based crash test
Change-Id: Ib5c2a176e0108b1fa20cbd0d156fb1f29139b8fa
Łukasz Stelmach [Mon, 28 Nov 2016 13:09:19 +0000 (14:09 +0100)]
tests: add a simple test
test1-crash crashes and dumps a core. test1-sleep enters an infinite
sleep enabling ptrace-based stack examination. test1-ill triggers
the "illegal instruction" exception (SIGILL).
Change-Id: I995f5ce8817e49ec57bac6cac8e7f458807d03f0
Łukasz Stelmach [Fri, 25 Nov 2016 15:12:55 +0000 (16:12 +0100)]
crash-pipe: read and parse core
Read basic information from elf notes segment and dump:
+ NT_SIGINFO: siginfo_t describing the signal that killed the process
+ NT_AUXV: auxiliary vector
+ NT_FILE: memory mapped files
+ NT_PRSTATUS: registers
The information is at the beginnig of the core (< 8kB) so it is not
necessary to read large amounts of data.
Change-Id: Ia2232ce88bb039e49f2129f7a28ff1f4a7c9bbda
Łukasz Stelmach [Fri, 4 Nov 2016 09:43:52 +0000 (10:43 +0100)]
crash-pipe: Print maps information
Change-Id: Idab48c5dde20e0aa2a8337b7008a8244a612d844