Re: Deleting a desktop icon causes gmc to segfault



On Wed, Mar 31, 1999 at 03:35:14PM -0500, Federico Mena Quintero was heard to say:
> >  Package: gmc
> >  Version: CVS 03-31-99
> >  
> >    If I delete an icon on the desktop, gmc segfaults.  The associated file is
> >  removed, so something happens before it dies.
> 
> Are you using the pixmap theme?

  No, Thinice.  Should I try this out with no theme at all?

> >  bluegreen:~/gaime> gdb gmc core
> [snip]
> >    I think that this may be related to the bug I reported a few minutes ago
> >  ("right-clicking on icon causes gmc to crash") -- the obvious problems in the
> >    backtrace start with dii becoming 0x0.
> 
> This does not look like a backtrace from deleting an icon in the
> desktop.

  Hmm.  I suspect my 'diagnosis' was entirely wrong but I really did make that
backtrace after deleting a file from the root window.

  I've done it again; before dying (I don't remember whether I said this
earlier, I should have) it complains about an invalid cast from NULL to GtkBin:

Gtk-WARNING **: invalid cast from (NULL) pointer to `GtkBin'

Program received signal SIGSEGV, Segmentation fault.
0x80c0796 in x_panel_select_item (panel=0x8238150, strchr=4, value=0)
    at gscreen.c:313
313             panel_file_list_set_row_colors (CLIST_FROM_SW (panel->list), index, color);

(gdb) print *panel
$3 = {widget = {x = 0, y = 0, cols = 0, lines = 0, color = 0, options = 0, 
    focused = 0, callback = 0, destroy = 0, mouse = 0, parent = 0x0, 
    wdata = 0, wcontainer = 0, frame = 0x0, tkname = 0x0, area = AREA_TOP, 
    layout = XV_WLAY_DONTCARE}, dir = {list = 0x8236368, size = 5}, 
  list_type = 4, active = 0, 
  cwd = "/home/daniel/.gnome-desktop", '\000' <repeats 4067 times>, 
  lwd = '\000' <repeats 4094 times>, dir_history = 0x0, hist_name = 0x0, 
  count = 5, marked = 1, dirs_marked = 0, total = 1675264, top_file = 0, 
  selected = -1, reverse = 0, case_sensitive = 0, split = 0, is_panelized = 0, 
  frame_size = 0, icons_per_row = 0, sort_type = 0, filter = 0x0, dirty = 0, 
  user_mini_status = 0, user_format = 0x0, user_status_format = {0x0, 0x0, 
    0x0, 0x0, 0x0}, format = 0x0, status_format = 0x0, format_modified = 0, 
  panel_name = 0x0, dir_stat = {st_dev = 0, __pad1 = 0, st_ino = 0, 
    st_mode = 0, st_nlink = 0, st_uid = 0, st_gid = 0, st_rdev = 0, 
    __pad2 = 0, st_size = 0, st_blksize = 0, st_blocks = 0, st_atime = 0, 
    __unused1 = 0, st_mtime = 0, __unused2 = 0, st_ctime = 0, __unused3 = 0, 
    __unused4 = 0, __unused5 = 0}, gc = 0x0, font = 0x0, item_height = 0, 
  total_width = 0, ascent = 0, descent = 0, searching = 0, 
  search_buffer = '\000' <repeats 255 times>, port_ui = 0x0, xwindow = 0x0, 
  table = 0x0, view_table = 0x0, pane = 0x0, list = 0x0, tree = 0x0, 
  icons = 0x0, notebook = 0x0, status = 0x0, ministatus = 0x0, 
  tree_scrolled_window = 0x0, filter_w = 0x0, current_dir = 0x0, 
  estimated_total = 0, back_b = 0x0, fwd_b = 0x0, up_b = 0x0, 
  maybe_start_drag = 0, click_x = 0, click_y = 0, view_menu_items = 0x0, 
  view_toolbar_items = 0x0, dragging = 0, timer_id = -1, drag_motion_x = 0, 
  drag_motion_y = 0, panel_listbox = 0x0, is_a_desktop_panel = 0}

  lots of zeros there...

(gdb) ba
#0  0x80c0796 in x_panel_select_item (panel=0x8238150, strchr=4, value=0)
    at gscreen.c:313
#1  0x806fb03 in file_mark (panel=0x8238150, strchr=4, val=0) at screen.c:2407
#2  0x806ebed in do_file_mark (panel=0x8238150, idx=4, mark=0) at screen.c:1937
#3  0x807a817 in panel_operate (source_panel=0x8238150, operation=OP_DELETE, 
    thedefault=0x0, ask_user=1) at file.c:2093
#4  0x809a09b in delete_cmd () at cmd.c:417
#5  0x80b6998 in handle_delete (widget=0x823a618, panel=0x8238150)
    at gpopup2.c:695
#6  0x80b5a5c in popup_marshal_func (object=0x823a618, data=0x80b6990, 
    n_args=0, args=0xbfffeb64) at gpopup2.c:249
#7  0x4029d87b in gtk_signal_remove_emission_hook ()
#8  0x4029cc1e in gtk_signal_set_funcs ()
#9  0x4029abdf in gtk_signal_emit ()
#10 0x402d2cc8 in gtk_widget_activate ()
#11 0x40275c63 in gtk_menu_shell_activate_item ()
#12 0x40274eb7 in gtk_menu_shell_deactivate ()
#13 0x402dbe89 in   ()
#14 0x4029cc57 in gtk_signal_set_funcs ()
#15 0x4029abdf in gtk_signal_emit ()
#16 0x402d2b68 in gtk_widget_event ()
#17 0x4026e162 in gtk_propagate_event ()
#18 0x4026d2e8 in gtk_main_do_event ()
#19 0x4031a28b in gdk_wm_protocols_filter ()
#20 0x40484e22 in g_get_current_time ()
#21 0x4048541b in g_get_current_time ()
#22 0x404855d1 in g_main_run ()
#23 0x4026ccdb in gtk_main ()
#24 0x80b6558 in gpopup_do_popup2 (event=0xbffff6e0, panel=0x8238150, 
    dii=0x81d3ca0) at gpopup2.c:563
#25 0x80aafb4 in do_popup_menu (dii=0x81d3ca0, event=0xbffff6e0)
    at gdesktop.c:1430
#26 0x80ab226 in icon_event (item=0x81d4288, event=0xbffff6e0, data=0x81d3ca0)
    at gdesktop.c:1513
#27 0x400ef9e9 in gnome_canvas_item_marshal_signal_1 (object=0x81d4288, 
    func=0x80ab020 <icon_event>, func_data=0x81d3ca0, args=0xbffff42c)
    at gnome-canvas.c:541
#28 0x4029d8b5 in gtk_signal_remove_emission_hook ()
#29 0x4029cc1e in gtk_signal_set_funcs ()
#30 0x4029abdf in gtk_signal_emit ()
#31 0x400f374b in emit_event (canvas=0x81d3db0, event=0x81b1248)
    at gnome-canvas.c:2682
#32 0x400f3d1b in gnome_canvas_button (widget=0x81d3db0, event=0x81b1248)
    at gnome-canvas.c:2890
#33 0x402dbe89 in   ()
#34 0x4029cc57 in gtk_signal_set_funcs ()
#35 0x4029abdf in gtk_signal_emit ()
#36 0x402d2b68 in gtk_widget_event ()
#37 0x4026e162 in gtk_propagate_event ()
#38 0x4026d2e8 in gtk_main_do_event ()
#39 0x4031a28b in gdk_wm_protocols_filter ()
#40 0x40484e22 in g_get_current_time ()
#41 0x4048541b in g_get_current_time ()
#42 0x404855d1 in g_main_run ()
#43 0x4026ccdb in gtk_main ()
#44 0x80b19d8 in gtkrundlg_event (h=0x81dc7c0) at gmain.c:356
#45 0x806b9c8 in run_dlg (h=0x81dc7c0) at dlg.c:942
#46 0x80b1d3d in non_corba_create_panels () at gmain.c:498
#47 0x80b1d61 in create_panels () at gmain.c:514
#48 0x8066b8d in setup_mc () at main.c:1854
#49 0x8067415 in do_nc () at main.c:2225
#50 0x8068001 in main (argc=1, argv=0xbffffc54) at main.c:3116

  Hmmmmm.  This one is different from the one I posted earlier. :-)  Anyway,
hope this helps.

  Daniel

-- 
  Using a metaphor in front of Ridcully was like a red rag to a--was like
using something very annoying in the presence of someone who was very annoyed
by it.

              -- Terry Pratchett, _Lords and Ladies_



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]