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)
Phil.