summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSunmin Lee <sunm.lee@samsung.com>2016-12-19 15:26:30 +0900
committerSunmin Lee <sunm.lee@samsung.com>2016-12-20 20:39:15 +0900
commit0cc4ad5390a4fe07765e5b8ede4e632626d1ee1b (patch)
tree35e33f4b878b733c35e3906eb2fff44ca69099ab /src
parent4de86e6545480af847b5eb6b58d43f044e449fc5 (diff)
downloadcrash-worker-0cc4ad5390a4fe07765e5b8ede4e632626d1ee1b.tar.gz
crash-worker-0cc4ad5390a4fe07765e5b8ede4e632626d1ee1b.tar.bz2
crash-worker-0cc4ad5390a4fe07765e5b8ede4e632626d1ee1b.zip
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>
Diffstat (limited to 'src')
-rw-r--r--src/crash-manager/99-crash-manager.conf.in2
-rw-r--r--src/crash-manager/crash-manager.c32
2 files changed, 21 insertions, 13 deletions
diff --git a/src/crash-manager/99-crash-manager.conf.in b/src/crash-manager/99-crash-manager.conf.in
index a58a81c..e036787 100644
--- a/src/crash-manager/99-crash-manager.conf.in
+++ b/src/crash-manager/99-crash-manager.conf.in
@@ -1,3 +1,3 @@
# Tizen crash-manager
-kernel.core_pattern=|/usr/bin/crash-manager %p %i %u %g %s %t %e %E
+kernel.core_pattern=|/usr/bin/crash-manager %p %u %g %s %t %e %E %i
kernel.core_pipe_limit=10
diff --git a/src/crash-manager/crash-manager.c b/src/crash-manager/crash-manager.c
index ec4d840..43994ba 100644
--- a/src/crash-manager/crash-manager.c
+++ b/src/crash-manager/crash-manager.c
@@ -211,7 +211,7 @@ static int make_dump_dir(void)
return 0;
}
-static int set_crash_info(char *argv[])
+static int set_crash_info(int argc, char *argv[])
{
int ret;
char *temp_dir_ret;
@@ -219,10 +219,11 @@ static int set_crash_info(char *argv[])
struct tm loc_tm;
crash_info.pid_info = argv[1];
- crash_info.tid_info = argv[2];
- crash_info.cmd_info = argv[7];
+ crash_info.cmd_info = argv[6];
+ if (argc > 8)
+ crash_info.tid_info = argv[8];
- time_val = atoll(argv[6]);
+ time_val = atoll(argv[5]);
localtime_r(&time_val, &loc_tm);
strftime(crash_info.time_info, sizeof(crash_info.time_info),
"%Y%m%d%H%M%S", &loc_tm);
@@ -459,12 +460,19 @@ static void execute_crash_modules(int argc, char *argv[], int debug)
/* Execute crash-stack */
/*
- ret = snprintf(command, sizeof(command),
- "%s --pid %s --tid %s >> %s",
- CRASH_STACK_PATH,
- crash_info.pid_info,
- crash_info.tid_info,
- crash_info.info_path);
+ if (argc > 8)
+ ret = snprintf(command, sizeof(command),
+ "%s --pid %s --tid %s >> %s",
+ CRASH_STACK_PATH,
+ crash_info.pid_info,
+ crash_info.tid_info,
+ crash_info.info_path);
+ else
+ ret = snprintf(command, sizeof(command),
+ "%s --pid %s >> %s",
+ CRASH_STACK_PATH,
+ crash_info.pid_info,
+ crash_info.info_path);
if (ret < 0) {
_E("Failed to snprintf for crash-stack command");
return;
@@ -762,7 +770,7 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
/* Set crash info */
- if (set_crash_info(argv) < 0)
+ if (set_crash_info(argc, argv) < 0)
exit(EXIT_FAILURE);
#ifdef SYS_ASSERT
@@ -772,7 +780,7 @@ int main(int argc, char *argv[])
/* .dbugmode: launch crash-popup */
if (access(DEBUGMODE_FILE, F_OK) == 0)
- launch_crash_popup(argv[8]);
+ launch_crash_popup(argv[7]);
/* Exec dump_systemstate */
dump_system_state();