Crash when loading images

General discussion forum - for all that doesn't fit in any other category.
Post Reply
philpem
Posts: 2
Joined: Sat Jan 30, 2021 10:42 pm

Crash when loading images

Post by philpem »

I've been able to crash the HxCFloppyEmulator a few times now. It's intermittent but repeatable in both release and debug mode.
This is built from the SVN source, on Linux Mint 20.1 "Ulyssa".

To reproduce --

- Drop an image on the window, wait for it to load
- Open the track viewer in "dummy disk" view
- Close the track viewer
- Repeat

Sometimes if I leave HxC for a while and load an image when I get back, it'll crash on the first image.

Here's the backtrace and a little debugging from GDB:

Code: Select all

hxc_fread : ptr=0x7fffe8cd0106 size=10 file:0x7fffcff79a90
hxc_fread : ptr=0x7fffe8cd0106 size=10 file:0x7fffcff79a90
hxc_fread : ptr=0x7fffe8cd0106 size=10 file:0x7fffcff79a90
hxc_fclose : file:0x7fffcff79a90
[Thread 0x7fffe8cd1700 (LWP 816430) exited]
--Type <RET> for more, q to quit, c to continue without paging--

Thread 1 "hxcfloppyemulat" received signal SIGSEGV, Segmentation fault.
0x000055555558287f in mouse_di_cb (o=0x555555cc4ca0, v=0x0) at ../sources/gui/cb_floppy_infos_window.cxx:875
875				if(sl->sectorconfig)
(gdb) bt f
#0  0x000055555558287f in mouse_di_cb (o=0x555555cc4ca0, v=0x0) at ../sources/gui/cb_floppy_infos_window.cxx:875
        i = 1024
        fiw = 0x55555570d600
        tew = 0x555555d5fd40
        dw = 0x555555cc3420
        dnd = 0x555555cc4ca0
        stepperpix_x = 300.25
        stepperpix_y = 3.1999999999999999e-05
        xpos = 804
        ypos = 335
        buttons_state = 1432122756
        str = "FF \000\070| \000f cells:17184\n\000\nStart Sector Data cell:75751\nEnd Sector cell:92231\n\000\001\000\000\000\224\tpUUU\000\000\000\020", '\000' <repeats 22 times>, "\260\324\377\377\377\177\000\000\001\000\000\000\000\000\000\000\000\325\377\377\377\177\000\000P", '\000' <repeats 15 times>, "\070\">\n\t\t\t\t\t\t<data_h\325\377\377\377\177\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000P\325\377\377\377\177\000\000"...
        str2 = "........\000\000\000\000\377\177\000\000oKd", '\000' <repeats 13 times>, "\240\344oUUU\000\000l\361\340\004\000\000\000\000\342\001", '\000' <repeats 14 times>, "\377\023\357$\000\000\000\000$\003\000\000P\001\000\000\250\005\000\000\201\001\000\000\020\000\000\000\000or_\001\000\000\000=\"128\">\n\t\t\t\t\t\t<data_fill>0xE5</data_fill>\n\t\t\t\t\t\t<side_id>0</side_id>\n\t\t\t\t\t\t<datamark>0xFB</datamark>"...
        track = 21845
        side = -11168
        curside = 0x5555556fe4a0
        sect_data = 0x7fffdc8ae980 ""
        sectorsize = 1024
        event = 11
        valmodif = 543515753
        c = 46 '.'
        sl = 0x4630
        pl = 0x19200000023
        disp_xsize = 1000
        disp_ysize = 500
        disp_xpos = 0
        disp_ypos = 1
        window = 0x5555556ee680
#1  0x00005555555bc2e1 in Fl_Widget::do_callback(Fl_Widget*, void*) ()
No symbol table info available.
#2  0x0000555555573ec1 in Fl_Widget::do_callback (this=0x555555cc4ca0) at ../sources/thirdpartylibs/fltk/fltk-1.x.x/FL/Fl_Widget.H:861
No locals.
#3  0x0000555555577c7d in Fl_Mouse_Box::callback_deferred (v=0x555555cc4ca0) at ../sources/gui/fl_mouse_box.h:11
        w = 0x555555cc4ca0
#4  0x000055555559a9ee in Fl::wait(double) ()
No symbol table info available.
#5  0x000055555559aaff in Fl::run() ()
No symbol table info available.
#6  0x000055555557395c in Main_Window::Main_Window (this=0x5555556ee680) at ../sources/gui/main_gui.cxx:1489
        j = 12
        infoth = 0x555555cc36b0
        stats = {totaldataout = 0, dataout = 0, synclost = 0, packetsize = 0, totalpacketsent = 0, packetsent = 0}
        temp = 0x555555e04d84 "Unitel Videotex Floppy Disk"
        i = 69
        rfb = 0x555555e021b0
        streamth = 0x555555d61360
        tmp_intptr = 8
        group = <incomplete type>
        menubar = <incomplete type>
        o = 0x555555732650
        i = <optimised out>
        j = <optimised out>
        rfb = <optimised out>
        temp = <optimised out>
        infoth = <optimised out>
        streamth = <optimised out>
        stats = <optimised out>
        tmp_intptr = <optimised out>
        group = <optimised out>
        menubar = <optimised out>
        o = <optimised out>
        box = <optimised out>
#7  0x000055555556ea5a in main (argc=1, argv=0x7fffffffdc68) at ../sources/main.cxx:96
No locals.


(gdb) list
870			sl = hxcfe_td_getlastsectorlist(guicontext->td);
871			fullstr[0]=0;
872	
873			while(sl)
874			{
875				if(sl->sectorconfig)
876				{
877					sectorsize = hxcfe_getSectorConfigSectorSize(guicontext->hxcfe,sl->sectorconfig);
878	
879					fullstr[0]=0;


(gdb) p sl
$1 = (s_sectorlist *) 0x4630

(gdb) p *sl
Cannot access memory at address 0x4630

(gdb) frame
#0  0x000055555558287f in mouse_di_cb (o=0x555555cc4ca0, v=0x0) at ../sources/gui/cb_floppy_infos_window.cxx:875
875				if(sl->sectorconfig)

Thanks
Phil.

Jeff
Site Admin
Posts: 8092
Joined: Fri Oct 20, 2006 12:12 am
Location: Paris
Contact:

Re: Crash when loading images

Post by Jeff »

Which image are you loading exactly ?

Post Reply