Tvheadendcrash » History » Version 1
Andreas Smas, 2010-08-19 14:46
initial
1 | 1 | Andreas Smas | |
---|---|---|---|
2 | = Running in gdb to file a bug report = |
||
3 | |||
4 | This method is by far the best one as it yields most info. Especially if you have compiled the source yourself |
||
5 | |||
6 | First start: |
||
7 | {{{ |
||
8 | $ gdb --args build.Linux/tvheadend -d |
||
9 | }}} |
||
10 | |||
11 | {{{ |
||
12 | GNU gdb (GDB) 7.1-ubuntu |
||
13 | Copyright (C) 2010 Free Software Foundation, Inc. |
||
14 | License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> |
||
15 | This is free software: you are free to change and redistribute it. |
||
16 | There is NO WARRANTY, to the extent permitted by law. Type "show copying" |
||
17 | and "show warranty" for details. |
||
18 | This GDB was configured as "i486-linux-gnu". |
||
19 | For bug reporting instructions, please see: |
||
20 | <http://www.gnu.org/software/gdb/bugs/>... |
||
21 | Reading symbols from /home/andoma/tvheadend/build.Linux/tvheadend...done. |
||
22 | }}} |
||
23 | |||
24 | {{{ |
||
25 | (gdb) r |
||
26 | }}} |
||
27 | |||
28 | Eventually the program will crash. Then execute these three commands and |
||
29 | paste in the bug report |
||
30 | |||
31 | |||
32 | === Register dump === |
||
33 | {{{ |
||
34 | (gdb) info reg |
||
35 | eax 0x0 0 |
||
36 | ecx 0x10 16 |
||
37 | edx 0x80cd818 135059480 |
||
38 | ebx 0x8178d90 135761296 |
||
39 | esp 0xb45ff140 0xb45ff140 |
||
40 | ebp 0xb45ff168 0xb45ff168 |
||
41 | esi 0x80f9f18 135241496 |
||
42 | edi 0xb45ff220 -1268780512 |
||
43 | eip 0x8057ec8 0x8057ec8 <subscription_unsubscribe+200> |
||
44 | eflags 0x10282 [ SF IF RF ] |
||
45 | cs 0x73 115 |
||
46 | ss 0x7b 123 |
||
47 | ds 0x7b 123 |
||
48 | es 0x7b 123 |
||
49 | fs 0x0 0 |
||
50 | gs 0x33 51 |
||
51 | }}} |
||
52 | |||
53 | |||
54 | === Disassembly of code around the crash === |
||
55 | {{{ |
||
56 | (gdb) disassemble $pc-32,$pc+32 |
||
57 | Dump of assembler code from 0x8057ea8 to 0x8057ee8: |
||
58 | 0x08057ea8 <subscription_unsubscribe+168>: add $0x24,%al |
||
59 | 0x08057eaa <subscription_unsubscribe+170>: call 0x804a814 <free@plt> |
||
60 | 0x08057eaf <subscription_unsubscribe+175>: mov %ebx,(%esp) |
||
61 | 0x08057eb2 <subscription_unsubscribe+178>: call 0x804a814 <free@plt> |
||
62 | 0x08057eb7 <subscription_unsubscribe+183>: call 0x80579c0 <subscription_reschedule> |
||
63 | 0x08057ebc <subscription_unsubscribe+188>: mov 0x80c8bc8,%eax |
||
64 | 0x08057ec1 <subscription_unsubscribe+193>: lea 0x0(%esi,%eiz,1),%esi |
||
65 | => 0x08057ec8 <subscription_unsubscribe+200>: mov (%eax),%edx |
||
66 | 0x08057eca <subscription_unsubscribe+202>: test %edx,%edx |
||
67 | 0x08057ecc <subscription_unsubscribe+204>: je 0x8057ed4 <subscription_unsubscribe+212> |
||
68 | 0x08057ece <subscription_unsubscribe+206>: mov 0x4(%eax),%ecx |
||
69 | 0x08057ed1 <subscription_unsubscribe+209>: mov %ecx,0x4(%edx) |
||
70 | 0x08057ed4 <subscription_unsubscribe+212>: mov 0x4(%eax),%ecx |
||
71 | 0x08057ed7 <subscription_unsubscribe+215>: mov %edx,(%ecx) |
||
72 | 0x08057ed9 <subscription_unsubscribe+217>: mov (%eax),%eax |
||
73 | 0x08057edb <subscription_unsubscribe+219>: jmp 0x8057ec8 <subscription_unsubscribe+200> |
||
74 | 0x08057edd <subscription_unsubscribe+221>: mov 0x2c(%ebx),%eax |
||
75 | 0x08057ee0 <subscription_unsubscribe+224>: movl $0x8094ad9,0x8(%esp) |
||
76 | }}} |
||
77 | |||
78 | === Full backtrace === |
||
79 | {{{ |
||
80 | (gdb) bt full |
||
81 | #0 subscription_unsubscribe (s=0x0) at /home/andoma/tvheadend/src/subscriptions.c:221 |
||
82 | t = 0x80f9f18 |
||
83 | #1 0x08061609 in htsp_subscription_destroy (htsp=0xb45ff220, hs=0x81762b8) at /home/andoma/tvheadend/src/htsp.c:240 |
||
84 | No locals. |
||
85 | #2 0x080616e9 in htsp_method_unsubscribe (htsp=0xb45ff220, in=0x817a468) at /home/andoma/tvheadend/src/htsp.c:806 |
||
86 | s = 0x81762b8 |
||
87 | sid = 1 |
||
88 | #3 0x080632ac in htsp_read_loop (fd=38, opaque=0x0, source=0x80d5774, self=0x80d5784) at /home/andoma/tvheadend/src/htsp.c:1065 |
||
89 | m = 0x817a468 |
||
90 | i = 8 |
||
91 | reply = <value optimized out> |
||
92 | r = <value optimized out> |
||
93 | method = <value optimized out> |
||
94 | #4 htsp_serve (fd=38, opaque=0x0, source=0x80d5774, self=0x80d5784) at /home/andoma/tvheadend/src/htsp.c:1188 |
||
95 | htsp = {htsp_fd = 38, htsp_peer = 0x80d5774, htsp_version = 0, htsp_logname = 0x80d3420 "127.0.0.1 [ HTS Showtime ]", |
||
96 | htsp_peername = 0x80ccf50 "127.0.0.1", htsp_username = 0x0, htsp_clientname = 0x80d7dd0 "HTS Showtime", htsp_async_mode = 1, |
||
97 | htsp_async_link = {le_next = 0x0, le_prev = 0x80c7e30}, htsp_writer_thread = 3017796464, htsp_writer_run = 1, htsp_active_output_queues = { |
||
98 | tqh_first = 0x0, tqh_last = 0xb45ff250}, htsp_out_mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __kind = 0, __nusers = 1, { |
||
99 | __spins = 0, __list = {__next = 0x0}}}, __size = '\000' <repeats 16 times>, "\001\000\000\000\000\000\000", __align = 0}, |
||
100 | htsp_out_cond = {__data = {__lock = 0, __futex = 119, __total_seq = 60, __wakeup_seq = 59, __woken_seq = 59, __mutex = 0xb45ff258, |
||
101 | __nwaiters = 2, __broadcast_seq = 0}, |
||
102 | __size = "\000\000\000\000w\000\000\000<\000\000\000\000\000\000\000;\000\000\000\000\000\000\000;\000\000\000\000\000\000\000X\362_\264\002\000\000\000\000\000\000\000\000\000\000", __align = 511101108224}, htsp_hmq_ctrl = {hmq_q = {tqh_first = 0x0, tqh_last = 0xb45ff2a0}, hmq_link = { |
||
103 | tqe_next = 0x0, tqe_prev = 0xb45ff250}, hmq_strict_prio = 0, hmq_length = 0, hmq_payload = 0}, htsp_hmq_epg = {hmq_q = { |
||
104 | tqh_first = 0x0, tqh_last = 0xb45ff2bc}, hmq_link = {tqe_next = 0x0, tqe_prev = 0x0}, hmq_strict_prio = 0, hmq_length = 0, |
||
105 | hmq_payload = 0}, htsp_hmq_qstatus = {hmq_q = {tqh_first = 0x0, tqh_last = 0xb45ff2d8}, hmq_link = {tqe_next = 0x81762e4, |
||
106 | tqe_prev = 0xb45ff250}, hmq_strict_prio = 1, hmq_length = 0, hmq_payload = 0}, htsp_subscriptions = {lh_first = 0x0}, |
||
107 | htsp_granted_access = 15, htsp_challenge = "\033\231\367B\270ʙ\375q~\272r\305&vә\\aۑ9\332+IM\036\365K\241\067K"} |
||
108 | buf = "127.0.0.1", '\000' <repeats 20 times> |
||
109 | s = <value optimized out> |
||
110 | #5 0x0804d7a3 in tcp_server_start (aux=0x80d5768) at /home/andoma/tvheadend/src/tcp.c:397 |
||
111 | val = 1 |
||
112 | #6 0x0018b96e in start_thread (arg=0xb45ffb70) at pthread_create.c:300 |
||
113 | ---Type <return> to continue, or q <return> to quit--- |
||
114 | __res = <value optimized out> |
||
115 | __ignore1 = <value optimized out> |
||
116 | __ignore2 = <value optimized out> |
||
117 | pd = 0xb45ffb70 |
||
118 | now = <value optimized out> |
||
119 | unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1687540, 0, 4001536, -1268779880, 1031645625, -1276594991}, mask_was_saved = 0}}, priv = {pad = { |
||
120 | 0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} |
||
121 | not_first_call = <value optimized out> |
||
122 | robust = <value optimized out> |
||
123 | freesize = <value optimized out> |
||
124 | __PRETTY_FUNCTION__ = "start_thread" |
||
125 | #7 0x00292a4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 |
||
126 | No locals. |
||
127 | }}} |
||
128 | |||
129 | |||
130 | = Using the crash info from syslog = |
||
131 | |||
132 | {{{ |
||
133 | [ALERT]:CRASH: SIGNAL: 6 in PRG: build.Linux/tvheadend (SVN-r5179) [039b869f7afe07cd8d72b6e73514d9eae4b2b763] CWD: /home/andoma/tvheadend |
||
134 | [ALERT]:CRASH: LOADED IMAGES: /lib/tls/i686/cmov/librt.so.1 /lib/tls/i686/cmov/libcrypt.so.1 /usr/lib/libavahi-common.so.3 /usr/lib/libavahi-client.so.3 /lib/tls/i686/cmov/libpthread.so.0 /lib/tls/i686/cmov/libm.so.6 /lib/tls/i686/cmov/libc.so.6 /lib/tls/i686/cmov/libdl.so.2 /lib/ld-linux.so.2 /lib/libdbus-1.so.3 /lib/tls/i686/cmov/libnss_compat.so.2 /lib/tls/i686/cmov/libnsl.so.1 /lib/tls/i686/cmov/libnss_nis.so.2 /lib/tls/i686/cmov/libnss_files.so.2 |
||
135 | [ALERT]:CRASH: REGDUMP[19]: 00000033 00000000 0000007b 0000007b 00487ff4 00000400 b55fb978 b55fb96c 00002972 00000006 0000297a 00000000 00000000 00000000 00ce2422 00000073 00200206 b55fb96c 0000007b |
||
136 | [ALERT]:CRASH: STACKTRACE |
||
137 | [ALERT]:CRASH: build.Linux/tvheadend 0x8067832 |
||
138 | [ALERT]:CRASH: __kernel_rt_sigreturn+0x0 () |
||
139 | [ALERT]:CRASH: abort+0x182 (/lib/tls/i686/cmov/libc.so.6) |
||
140 | [ALERT]:CRASH: /lib/tls/i686/cmov/libc.so.6 0x39349d |
||
141 | [ALERT]:CRASH: /lib/tls/i686/cmov/libc.so.6 0x39d591 |
||
142 | [ALERT]:CRASH: /lib/tls/i686/cmov/libc.so.6 0x3a0395 |
||
143 | [ALERT]:CRASH: __libc_calloc+0xab (/lib/tls/i686/cmov/libc.so.6) |
||
144 | [ALERT]:CRASH: build.Linux/tvheadend 0x807ee1a |
||
145 | [ALERT]:CRASH: build.Linux/tvheadend 0x8080883 |
||
146 | [ALERT]:CRASH: build.Linux/tvheadend 0x8080ca8 |
||
147 | [ALERT]:CRASH: /lib/tls/i686/cmov/libpthread.so.0 0x1ca96e |
||
148 | [ALERT]:CRASH: clone+0x5e (/lib/tls/i686/cmov/libc.so.6) |
||
149 | |||
150 | }}} |