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 | }}} |