On Fri, Jun 10, 2005 at 03:27:53PM +0200, Sjoerd Simons wrote:
> On Thu, Jun 09, 2005 at 04:26:42PM -0300, Felipe Massia Pereira wrote:
> > Package: gkrellmms
> > Version: 2.1.22-1
> > Severity: normal
> >
> >
> > Gkrellm stops when XMMS is running (and Gkrellmms is enabled, of
> > course; when it's not enabled, it works fine).
> >
> > There are 2 info that may help:
> >
> > - it used to work fine. Problems began to appear when I switched my
> > system to UTF-8;
> >
> > - there seem to be a problem with XMMS socket also. I can not reproduce
> > it right now, but there's a message in the X console that I think it's
> > being emmitted by xmms.
> >
> > I'm going to try and delete .gkrellm and .xmms but it is painful :-(
> >
> > Here's the last lines of strace output, right after mms was enabled at
> > gkrellm plugins page.
> >
> > socket(PF_FILE, SOCK_STREAM, 0) = 11
> > getuid32() = 2004
> > geteuid32() = 2004
> > setuid32(2004) = 0
> > setreuid32(2004, 2004) = 0
> > connect(11, {sa_family=AF_FILE, path="/tmp/xmms_felipe.0"}, 110) = 0
> > write(11, "\1\0\22\0\4\0\0\0", 8) = 8
> > write(11, "9\0\0\0", 4) = 4
> > read(11, "\1\0\0\0003\0\0\0", 8) = 8
> > read(11, "/l/musica/taize/misc/taize_-_du_"..., 51) = 51
> > read(11, "\1\0\0\0\0\0\0\0", 8) = 8
> > close(11) = 0
> > ioctl(3, FIONREAD, [0]) = 0
> > poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=10,
> > events=POLLIN}], 3, 0) = 0
> > socket(PF_FILE, SOCK_STREAM, 0) = 11
> > getuid32() = 2004
> > geteuid32() = 2004
> > setuid32(2004) = 0
> > setreuid32(2004, 2004) = 0
> > connect(11, {sa_family=AF_FILE, path="/tmp/xmms_felipe.0"}, 110) = 0
> > write(11, "\1\0\22\0\4\0\0\0", 8) = 8
> > write(11, ":\0\0\0", 4) = 4
> > read(11, "\1\0\0\0:\0\0\0", 8) = 8
> > read(11, "/l/musica/taize/misc/taize_-_el_"..., 58) = 58
> > read(11, "\1\0\0\0\0\0\0\0", 8) = 8
> > close(11) = 0
> > [1]- Exit 1 gkrellm
> >
> > It sit stopped after close(11) and I had to hit ^C.
>
> Ugh, this should have been fixed in 2.1.22. Could you run it in ltrace, that
> sometimes gives helpfull results. Otherwise i'll prepare a debug version for
> you.
I'm trying to learn :-) I removed dh_strip and "-s" from install
command, built and installed the resulting .deb. Then I ran gdb gkrellm with
gkrellmms off initially and xmms not running. I set a break at
update_gkrellmms and ran xmms before stepping into the function. Then I
stepped with "n" until it called "update_playlist" and stopped. Then I
hit ^C and here is the backtrace:
(gdb)
209 if (pGK->second_tick)
(gdb)
210 set_panel_status();
(gdb)
212 playlist_changed = update_playlist();
(gdb)
Program received signal SIGINT, Interrupt.
0xb79c9a16 in getenv () from /lib/tls/i686/cmov/libc.so.6
(gdb) backtrace
#0 0xb79c9a16 in getenv () from /lib/tls/i686/cmov/libc.so.6
#1 0xb79c301a in gettext () from /lib/tls/i686/cmov/libc.so.6
#2 0xb79c25b2 in gettext () from /lib/tls/i686/cmov/libc.so.6
#3 0xb79c225f in dcgettext () from /lib/tls/i686/cmov/libc.so.6
#4 0xb7b5597f in g_get_codeset () from /usr/lib/libglib-2.0.so.0
#5 0xb7b1c328 in g_convert_with_fallback () from
/usr/lib/libglib-2.0.so.0
#6 0xb7b1c3a0 in g_locale_to_utf8 () from /usr/lib/libglib-2.0.so.0
#7 0xb749c085 in string_to_utf8 (str=0x0, is_filename=1) at
playlist.c:70
#8 0xb749c42f in load_playlist () at playlist.c:169
#9 0xb749c60c in update_playlist () at playlist.c:211
#10 0xb7496de6 in update_gkrellmms () at gkrellmms.c:212
#11 0x08059062 in gkrellm_map_color_string ()
#12 0xb7b32c9c in g_main_context_wakeup () from
/usr/lib/libglib-2.0.so.0
#13 0xb7b30582 in g_main_depth () from /usr/lib/libglib-2.0.so.0
#14 0xb7b315f8 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#15 0xb7b31930 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#16 0xb7b31ed3 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#17 0xb7e0d243 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x0805d0b5 in main ()
Maybe this info could help...
(gdb) print str
No symbol "str" in current context.
(gdb) frame 7
#7 0xb749c085 in string_to_utf8 (str=0x0, is_filename=1) at
playlist.c:70
70 result = g_locale_to_utf8(str, -1, &read, NULL, &error);
(gdb) print str
$1 = (gchar *) 0x0
(gdb) print read
$2 = 0
(gdb) print error
$3 = (GError *) 0x0
(gdb) frame 8
#8 0xb749c42f in load_playlist () at playlist.c:169
169 filename = string_to_utf8(filename, TRUE);
(gdb) list
164 if (filename == NULL) {
165 /* error occurred empty playlist and try again */
166 empty_playlist();
167 return load_playlist();
168 }
169 filename = string_to_utf8(filename, TRUE);
170
171 while (gtk_events_pending())
172 gtk_main_iteration();
173
(gdb) print filename
$4 = 0x81baa58 "??/musica/14 bis/14_bis_-_eu_j�fechei_meus_olhos.mp3"
(gdb) x/55c filename
0x81baa58: 63 '?' 63 '?' 47 '/' 109 'm' 117 'u' 115 's' 105 'i'
99 'c'
0x81baa60: 97 'a' 47 '/' 49 '1' 52 '4' 32 ' ' 98 'b' 105 'i'
115 's'
0x81baa68: 47 '/' 49 '1' 52 '4' 95 '_' 98 'b' 105 'i' 115 's'
95 '_'
0x81baa70: 45 '-' 95 '_' 101 'e' 117 'u' 95 '_' 106 'j' -31 '�
95 '_'
0x81baa78: 102 'f' 101 'e' 99 'c' 104 'h' 101 'e' 105 'i' 95 '_'
109 'm'
0x81baa80: 101 'e' 117 'u' 115 's' 95 '_' 111 'o' 108 'l' 104 'h'
111 'o'
0x81baa88: 115 's' 46 '.' 109 'm' 112 'p' 51 '3' 0 '\0' 0 '\0'
(gdb)
ltrace didn't seem to be of any help (many drawing function calls).
I can do more debugging tasks, just tell me which.
tia
--
Felipe