|
Matej Habrnal |
af7973 |
From edf897e2d62e6cb290b314e41a471894e2a2ca8f Mon Sep 17 00:00:00 2001
|
|
Matej Habrnal |
af7973 |
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
Matej Habrnal |
af7973 |
Date: Thu, 24 Sep 2015 10:30:47 +0200
|
|
Matej Habrnal |
af7973 |
Subject: [PATCH] abrt-dump-xorg: support Xorg log backtraces prefixed by (EE)
|
|
Matej Habrnal |
af7973 |
|
|
Matej Habrnal |
af7973 |
The backtraces looks like
|
|
Matej Habrnal |
af7973 |
[ 60244.259] (EE) Backtrace
|
|
Matej Habrnal |
af7973 |
[ 60244.262] (EE) 0: /usr/libexec/Xorg (OsLookupColor+0x139) [0x59add9]
|
|
Matej Habrnal |
af7973 |
[ 60244.264] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f61be425b1f]
|
|
Matej Habrnal |
af7973 |
...
|
|
Matej Habrnal |
af7973 |
[ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
|
Matej Habrnal |
af7973 |
[ 60244.273] (EE)
|
|
Matej Habrnal |
af7973 |
[ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
|
Matej Habrnal |
af7973 |
|
|
Matej Habrnal |
af7973 |
This format of Xorg log files was not supported by abrt-dump-xorg tool.
|
|
Matej Habrnal |
af7973 |
|
|
Matej Habrnal |
af7973 |
Related to rhbz#1264739
|
|
Matej Habrnal |
af7973 |
|
|
Matej Habrnal |
af7973 |
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
Matej Habrnal |
af7973 |
---
|
|
Matej Habrnal |
af7973 |
src/plugins/abrt-dump-xorg.c | 57 +++++++++++++++++++++++++++++---------------
|
|
Matej Habrnal |
af7973 |
1 file changed, 38 insertions(+), 19 deletions(-)
|
|
Matej Habrnal |
af7973 |
|
|
Matej Habrnal |
af7973 |
diff --git a/src/plugins/abrt-dump-xorg.c b/src/plugins/abrt-dump-xorg.c
|
|
Matej Habrnal |
af7973 |
index 4aaff11..6cdfc95 100644
|
|
Matej Habrnal |
af7973 |
--- a/src/plugins/abrt-dump-xorg.c
|
|
Matej Habrnal |
af7973 |
+++ b/src/plugins/abrt-dump-xorg.c
|
|
Matej Habrnal |
af7973 |
@@ -51,8 +51,19 @@ static char *skip_pfx(char *p)
|
|
Matej Habrnal |
af7973 |
char *q = strchr(p, ']');
|
|
Matej Habrnal |
af7973 |
if (!q)
|
|
Matej Habrnal |
af7973 |
return p;
|
|
Matej Habrnal |
af7973 |
+
|
|
Matej Habrnal |
af7973 |
if (q[1] == ' ')
|
|
Matej Habrnal |
af7973 |
- return q + 2;
|
|
Matej Habrnal |
af7973 |
+ {
|
|
Matej Habrnal |
af7973 |
+ q += 2;
|
|
Matej Habrnal |
af7973 |
+ /* if there is (EE), ignore it */
|
|
Matej Habrnal |
af7973 |
+ if (strncmp(q, "(EE)", 4) == 0)
|
|
Matej Habrnal |
af7973 |
+ {
|
|
Matej Habrnal |
af7973 |
+ /* if ' ' follows (EE), ignore it too */
|
|
Matej Habrnal |
af7973 |
+ return q + (4 + (q[4] == ' '));
|
|
Matej Habrnal |
af7973 |
+ }
|
|
Matej Habrnal |
af7973 |
+
|
|
Matej Habrnal |
af7973 |
+ return q;
|
|
Matej Habrnal |
af7973 |
+ }
|
|
Matej Habrnal |
af7973 |
return p;
|
|
Matej Habrnal |
af7973 |
}
|
|
Matej Habrnal |
af7973 |
|
|
Matej Habrnal |
af7973 |
@@ -114,24 +125,24 @@ static void save_bt_to_dump_dir(const char *bt, const char *exe, const char *rea
|
|
Matej Habrnal |
af7973 |
/* Called after "Backtrace:" line was read.
|
|
Matej Habrnal |
af7973 |
* Example (yes, stray newline before 'B' is real):
|
|
Matej Habrnal |
af7973 |
[ 86985.879]<space>
|
|
Matej Habrnal |
af7973 |
-Backtrace:
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 0: /usr/bin/Xorg (xorg_backtrace+0x2f) [0x462d8f]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 1: /usr/bin/Xorg (0x400000+0x67b56) [0x467b56]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 2: /lib64/libpthread.so.0 (0x30a5800000+0xf4f0) [0x30a580f4f0]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 3: /usr/lib64/xorg/modules/extensions/librecord.so (0x7ff6c225e000+0x26c3) [0x7ff6c22606c3]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 4: /usr/bin/Xorg (_CallCallbacks+0x3c) [0x43820c]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 5: /usr/bin/Xorg (WriteToClient+0x1f5) [0x466315]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 6: /usr/lib64/xorg/modules/extensions/libdri2.so (ProcDRI2WaitMSCReply+0x4f) [0x7ff6c1e4feef]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 7: /usr/lib64/xorg/modules/extensions/libdri2.so (DRI2WaitMSCComplete+0x52) [0x7ff6c1e4e6d2]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 8: /usr/lib64/xorg/modules/drivers/intel_drv.so (0x7ff6c1bfb000+0x25ae4) [0x7ff6c1c20ae4]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 9: /usr/lib64/libdrm.so.2 (drmHandleEvent+0xa3) [0x376b407513]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 10: /usr/bin/Xorg (WakeupHandler+0x6b) [0x4379db]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 11: /usr/bin/Xorg (WaitForSomething+0x1a9) [0x460289]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 12: /usr/bin/Xorg (0x400000+0x3379a) [0x43379a]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 13: /usr/bin/Xorg (0x400000+0x22dc5) [0x422dc5]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 14: /lib64/libc.so.6 (__libc_start_main+0xed) [0x30a542169d]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] 15: /usr/bin/Xorg (0x400000+0x230b1) [0x4230b1]
|
|
Matej Habrnal |
af7973 |
-[ 86985.880] Segmentation fault at address 0x7ff6bf09e010
|
|
Matej Habrnal |
af7973 |
+[ 60244.259] (EE) Backtrace:
|
|
Matej Habrnal |
af7973 |
+[ 60244.262] (EE) 0: /usr/libexec/Xorg (OsLookupColor+0x139) [0x59add9]
|
|
Matej Habrnal |
af7973 |
+[ 60244.264] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f61be425b1f]
|
|
Matej Habrnal |
af7973 |
+[ 60244.266] (EE) 2: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0xa9fc) [0x7f61b903116c]
|
|
Matej Habrnal |
af7973 |
+[ 60244.267] (EE) 3: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0xbe27) [0x7f61b90339a7]
|
|
Matej Habrnal |
af7973 |
+[ 60244.268] (EE) 4: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x31060) [0x7f61b907db00]
|
|
Matej Habrnal |
af7973 |
+[ 60244.269] (EE) 5: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x3fb73) [0x7f61b909b0c3]
|
|
Matej Habrnal |
af7973 |
+[ 60244.270] (EE) 6: /usr/lib64/xorg/modules/drivers/intel_drv.so (_init+0x3fe1a) [0x7f61b909b77a]
|
|
Matej Habrnal |
af7973 |
+[ 60244.270] (EE) 7: /usr/libexec/Xorg (DamageRegionAppend+0x3783) [0x525003]
|
|
Matej Habrnal |
af7973 |
+[ 60244.270] (EE) 8: /usr/libexec/Xorg (SendGraphicsExpose+0xeb3) [0x4340b3]
|
|
Matej Habrnal |
af7973 |
+[ 60244.270] (EE) 9: /usr/libexec/Xorg (SendErrorToClient+0x2df) [0x43684f]
|
|
Matej Habrnal |
af7973 |
+[ 60244.271] (EE) 10: /usr/libexec/Xorg (remove_fs_handlers+0x453) [0x43a893]
|
|
Matej Habrnal |
af7973 |
+[ 60244.272] (EE) 11: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f61be411580]
|
|
Matej Habrnal |
af7973 |
+[ 60244.272] (EE) 12: /usr/libexec/Xorg (_start+0x29) [0x424b79]
|
|
Matej Habrnal |
af7973 |
+[ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
|
Matej Habrnal |
af7973 |
+[ 60244.273] (EE)
|
|
Matej Habrnal |
af7973 |
+[ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
|
Matej Habrnal |
af7973 |
+[ 60244.273] (EE)
|
|
Matej Habrnal |
af7973 |
*/
|
|
Matej Habrnal |
af7973 |
static void process_xorg_bt(void)
|
|
Matej Habrnal |
af7973 |
{
|
|
Matej Habrnal |
af7973 |
@@ -144,6 +155,14 @@ static void process_xorg_bt(void)
|
|
Matej Habrnal |
af7973 |
{
|
|
Matej Habrnal |
af7973 |
char *p = skip_pfx(line);
|
|
Matej Habrnal |
af7973 |
|
|
Matej Habrnal |
af7973 |
+ /* ignore empty lines
|
|
Matej Habrnal |
af7973 |
+ * [ 60244.273] (EE) 13: ? (?+0x29) [0x29]
|
|
Matej Habrnal |
af7973 |
+ * [ 60244.273] (EE) <---
|
|
Matej Habrnal |
af7973 |
+ * [ 60244.273] (EE) Segmentation fault at address 0x7f61d93f6160
|
|
Matej Habrnal |
af7973 |
+ */
|
|
Matej Habrnal |
af7973 |
+ if (*p == '\0')
|
|
Matej Habrnal |
af7973 |
+ continue;
|
|
Matej Habrnal |
af7973 |
+
|
|
Matej Habrnal |
af7973 |
/* xorg-server-1.12.0/os/osinit.c:
|
|
Matej Habrnal |
af7973 |
* if (sip->si_code == SI_USER) {
|
|
Matej Habrnal |
af7973 |
* ErrorF("Recieved signal %d sent by process %ld, uid %ld\n",
|
|
Matej Habrnal |
af7973 |
--
|
|
Matej Habrnal |
af7973 |
2.5.0
|
|
Matej Habrnal |
af7973 |
|