summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-06-23 15:51:09 +0200
committerLennart Poettering <lennart@poettering.net>2014-06-23 15:51:09 +0200
commit4b8cbe9a71380a912b799de5f12f06a9d838b289 (patch)
tree7f616c50b2401fbfba3794ccf0768e82ace20152
parent5b244719abc81b83d8a0d732c3b95a2845d8811a (diff)
coredumpctl: include timestamp information in "coredumpctl info" output
-rw-r--r--src/journal/coredumpctl.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c
index 4f50f1b139..56b7becfcd 100644
--- a/src/journal/coredumpctl.c
+++ b/src/journal/coredumpctl.c
@@ -409,9 +409,10 @@ static int print_info(FILE *file, sd_journal *j, bool need_space) {
*unit = NULL, *user_unit = NULL, *session = NULL,
*boot_id = NULL, *machine_id = NULL, *hostname = NULL,
*coredump = NULL, *slice = NULL, *cgroup = NULL,
- *owner_uid = NULL, *message = NULL;
+ *owner_uid = NULL, *message = NULL, *timestamp = NULL;
const void *d;
size_t l;
+ int r;
assert(file);
assert(j);
@@ -430,6 +431,7 @@ static int print_info(FILE *file, sd_journal *j, bool need_space) {
retrieve(d, l, "COREDUMP_OWNER_UID", &owner_uid);
retrieve(d, l, "COREDUMP_SLICE", &slice);
retrieve(d, l, "COREDUMP_CGROUP", &cgroup);
+ retrieve(d, l, "COREDUMP_TIMESTAMP", &timestamp);
retrieve(d, l, "_BOOT_ID", &boot_id);
retrieve(d, l, "_MACHINE_ID", &machine_id);
retrieve(d, l, "_HOSTNAME", &hostname);
@@ -486,6 +488,22 @@ static int print_info(FILE *file, sd_journal *j, bool need_space) {
fprintf(file, " Signal: %s\n", sgnl);
}
+ if (timestamp) {
+ usec_t u;
+
+ r = safe_atou64(timestamp, &u);
+ if (r >= 0) {
+ char absolute[FORMAT_TIMESTAMP_MAX], relative[FORMAT_TIMESPAN_MAX];
+
+ fprintf(file,
+ " Timestamp: %s (%s)\n",
+ format_timestamp(absolute, sizeof(absolute), u),
+ format_timestamp_relative(relative, sizeof(relative), u));
+
+ } else
+ fprintf(file, " Timestamp: %s\n", timestamp);
+ }
+
if (exe)
fprintf(file, " Executable: %s%s%s\n", ansi_highlight(), exe, ansi_highlight_off());
if (comm)