rolandshacks / vs64

C64 Development Environment for Visual Studio Code
Other
88 stars 15 forks source link

VICE-SDL known bug on Windows #68

Open rolandshacks opened 2 months ago

rolandshacks commented 2 months ago

With VICE 3.8 there is a known issue on windows. When using the binary monitor interface (which VS64 does), VICE will crash.

With the GTK version of VICE, there is no problem.

--

Here's more info:

file "./src/arch/sdl/uimon.c"

int uimon_out(const char *buffer)
{
...
if (using_ui_monitor) { // << using_ui_monitor is '1'
int y = menu_draw->max_text_y - 1; // << pointer menu_draw is 'NULL' --> CRASH!
...
}

Debug Session:

[New Thread 12440.0x36b0]
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007ff66e84350e in uimon_out (buffer=buffer@entry=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at uimon.c:127
127 int y = menu_draw->max_text_y - 1;

(gdb) frame
#0 0x00007ff66e84350e in uimon_out (buffer=buffer@entry=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at uimon.c:127
127 int y = menu_draw->max_text_y - 1;
(gdb) backtrace
#0 0x00007ff66e84350e in uimon_out (buffer=buffer@entry=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at uimon.c:127
#1 0x00007ff66e7923d5 in mon_out_buffered (buffer=0x6fb58b0 "autostarting d:\\Work\\c64\\asmtest\\build\\asmtest.prg #0\n") at mon_util.c:177
#2 mon_out (format=format@entry=0x7ff66e913524 <mon_cmd_array+4900> "auto%s %s #%d\n") at mon_util.c:198
#3 0x00007ff66e7a0f76 in mon_autostart (image_name=image_name@entry=0x6fa91cf "d:\\Work\\c64\\asmtest\\build\\asmtest.prg", file_index=0, run=1)
at mon_file.c:497
#4 0x00007ff66e799cd5 in monitor_binary_process_autostart (command=<synthetic pointer>) at monitor_binary.c:754
#5 monitor_binary_process_command (pbuffer=pbuffer@entry=0x6fa91c0 "\002\002)") at monitor_binary.c:1625
#6 0x00007ff66e79b042 in monitor_binary_get_command_line () at monitor_binary.c:1739
#7 0x00007ff66e792741 in uimon_in (prompt=prompt@entry=0x5ffba0 "(C:$fd81) ") at mon_util.c:319
#8 0x00007ff66e7933fb in monitor_startup (mem=<optimized out>) at monitor.c:3154
#9 0x00007ff66e661f4d in interrupt_do_trap (cs=0x6c4fd0, address=64897) at interrupt.c:354
#10 0x00007ff66e6904dd in maincpu_mainloop () at C:/Tools/msys64/home/Roland/temp/vice-3.7/src/c64/../6510dtvcore.c:1687
#11 0x00007ff66e66ca8b in main_loop_forever () at main.c:401
#12 main_program (argc=<optimized out>, argv=<optimized out>) at main.c:389
#13 0x00007ff66e86039e in main_getcmdline ()
#14 0x00007ff66e6512ee in __tmainCRTStartup () at C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:267
#15 0x00007ff66e6513e6 in WinMainCRTStartup () at C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:157
(gdb)