osd-lyrics在audacious退出时崩溃

13 views
Skip to first unread message

Darren

unread,
Oct 29, 2009, 7:20:27 AM10/29/09
to osd-lyrics
版本是:osdlyrics-0.2.20091010,audacious的版本是 2.2-beta1,不知道是不是osdlyrics的bug
我用Debian,因为dbus-glib的一个bug,在audacious退出时,osdlyrics也会崩溃,我于是打了
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541632 中提供的patch。打过补丁

原来崩溃的位置不再崩溃了,但是在下面的地方还是崩溃了。

以下是backtrace:
(gdb) info stack
#0 0xb74d93f1 in vfprintf () from /lib/i686/cmov/libc.so.6
#1 0xb74dacb2 in ?? () from /lib/i686/cmov/libc.so.6
#2 0xb74d5c7b in vfprintf () from /lib/i686/cmov/libc.so.6
#3 0xb74dfe7f in fprintf () from /lib/i686/cmov/libc.so.6
#4 0x08059f64 in ol_player_mpris_proxy_free (mpris=0x8161b50) at
ol_player_mpris.c:34
#5 0xb78b7544 in g_cclosure_marshal_VOID__VOID () from /usr/lib/
libgobject-2.0.so.0
#6 0xb78a9de3 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.
0
#7 0xb78bdf0f in ?? () from /usr/lib/libgobject-2.0.so.0
#8 0xb78bf359 in g_signal_emit_valist () from /usr/lib/
libgobject-2.0.so.0
#9 0xb78bf7b6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#10 0xb77d7b3e in ?? () from /usr/lib/libdbus-glib-1.so.2
#11 0xb78ac3ef in g_object_run_dispose () from /usr/lib/
libgobject-2.0.so.0
#12 0xb77d88be in ?? () from /usr/lib/libdbus-glib-1.so.2
#13 0xb779cd55 in dbus_connection_dispatch () from /lib/libdbus-1.so.3
#14 0xb77cebdd in ?? () from /usr/lib/libdbus-glib-1.so.2
#15 0xb781ee98 in g_main_context_dispatch () from /lib/libglib-2.0.so.
0
#16 0xb7822623 in ?? () from /lib/libglib-2.0.so.0
#17 0xb7822aea in g_main_loop_run () from /lib/libglib-2.0.so.0
#18 0xb7d3cf09 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x0805061b in main (argc=1, argv=0xbffff984) at ol_main.c:330
(gdb) frame 4
#4 0x08059f64 in ol_player_mpris_proxy_free (mpris=0x8161b50) at
ol_player_mpris.c:34
(gdb) list
29 }
30
31 static gboolean
32 ol_player_mpris_proxy_free (OlPlayerMpris *mpris)
33 {
34 fprintf (stderr, "%s:%s\n", __FUNCTION__, mpris->name);
35 g_object_unref (mpris->proxy);
36 mpris->proxy = NULL;
37 return FALSE;
38 }
(gdb) p mpris->name
$18 = (gchar *) 0x3 <Address 0x3 out of bounds>
(gdb) info locals
__FUNCTION__ = "ol_player_mpris_proxy_free"

以下是dbus-monitor的输出结果:

signal sender=org.freedesktop.DBus -> dest=(null destination) serial=7
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
string ":1.357"
string ":1.357"
string ""
signal sender=:1.0 -> dest=(null destination) serial=447 path=/org/
gnome/SessionManager; interface=org.gnome.SessionManager;
member=ClientRemoved
object path "/org/gnome/SessionManager/Client74"
signal sender=org.freedesktop.DBus -> dest=(null destination) serial=8
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
string "org.mpris.audacious"
string ":1.356"
string ""
signal sender=org.freedesktop.DBus -> dest=(null destination) serial=9
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
string "org.atheme.audacious"
string ":1.356"
string ""
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=10 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
string ":1.356"
string ":1.356"
string ""
method call sender=:1.358 -> dest=org.freedesktop.DBus serial=189
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=RemoveMatch
string "type='signal',sender='org.freedesktop.DBus',path='/org/
freedesktop/
DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0=':
1.356'"
signal sender=org.freedesktop.DBus -> dest=(null destination)
serial=11 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
member=NameOwnerChanged
string ":1.358"
string ":1.358"
string ""

Tiger Soldier

unread,
Oct 29, 2009, 8:03:59 AM10/29/09
to osd-lyrics
很奇怪,destroy的时候MPRIS的地址变了,Banshee就没事。
目前暂时不知道问题出在哪里,先记录issue下来吧。

On 10月29日, 下午7时20分, Darren <darren....@gmail.com> wrote:
> 版本是:osdlyrics-0.2.20091010,audacious的版本是 2.2-beta1,不知道是不是osdlyrics的bug
> 我用Debian,因为dbus-glib的一个bug,在audacious退出时,osdlyrics也会崩溃,我于是打了http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541632中提供的patch。打过补丁

Tiger Soldier

unread,
Oct 29, 2009, 9:04:00 AM10/29/09
to osd-lyrics
搞定了
一个低级错误,free的函数原型都搞错了-_-

Guomin Chen

unread,
Oct 29, 2009, 1:10:48 PM10/29/09
to osd-l...@googlegroups.com
good

2009/10/29 Tiger Soldier <tiger...@gmail.com>
Reply all
Reply to author
Forward
0 new messages