backtrace:
Code:
GLib-GObject-WARNING **: invalid cast from `GtkTreeView' to `GtkCList'
aborting...
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb74ca6c0 (LWP 3287)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb774d495 in raise () from /lib/libc.so.6
#2 0xb774ecb1 in abort () from /lib/libc.so.6
#3 0xb7887941 in g_logv () from /usr/lib/libglib-2.0.so.0
#4 0xb7887979 in g_log () from /usr/lib/libglib-2.0.so.0
#5 0xb793a4b5 in g_type_check_instance_cast () from /usr/lib/libgobject-2.0.so.0
#6 0x080b732f in callback_buttonPressed (widget=0x9c6d0f8, event=0x9d51338, data=0x9c32670)
at main/gui_gtk/rombrowser.c:570
#7 0xb7bfea74 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#8 0x09c6d0f8 in ?? ()
#9 0x09d51338 in ?? ()
#10 0x09c32670 in ?? ()
#11 0xb794c670 in ?? () from /usr/lib/libgobject-2.0.so.0
#12 0xb7bfea10 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x09c77fc8 in ?? ()
#14 0xbf8cc478 in ?? ()
#15 0xb791cd99 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
Backtrace stopped: frame did not save the PC
I've also added a few printf's to rom.c: fill_header(), which is actually printing a
"file not found or wrong path" after Gtk warnings. Now it looks like this:
Code:
int fill_header(const char *argv)
{
char arg[1024];
printf ("fill_header(): [initial state]\n *argv=%s\n arg=%s\n", argv, arg);
strncpy(arg, argv, 1000);
if (find_file(arg))
{
printf ("file not found or wrong path\n");
printf ("fill_header():\n *argv=%s\n arg=%s\n", argv, arg);
return 0;
}
...
which gives an stdout log like:
Code:
./mupen64
(mupen64:4307): GLib-GObject-WARNING **: invalid cast from `GtkTreeView' to `GtkCList'
(mupen64:4307): Gtk-CRITICAL **: gtk_clist_select_row: assertion `GTK_IS_CLIST (clist)' failed
fill_header(): [initial state]
*argv=
arg=
file not found or wrong path
fill_header():
*argv=
arg=.gz.GZ
Looks to me like "gtk_clist_select_row( GTK_CLIST(widget), row, col );" in rombrowser.c:570 results in an empty path given to rom.c: find_file(), as the last arg value is ".gz.GZ". (This is happens at the end of find_file(), and looks little bit weird, as argv ends up having two extensions concatenated.)
I've also tried putting a rom unzipped, in /tmp/SM.v64 to be sure it has no problems with decompression or long file names.
Strange thing is that nobody else experience a trouble like this.
I hope this information will help to resolve the problem.