From: Gwenole B. <gb....@fr...> - 2005-07-01 09:39:55
|
Le vendredi, 1 jul 2005, =E0 00:00 Europe/Paris, Michael Dickison a = =E9crit=20 : > Yup, paranoia works! But I tried compiling the CVS today and I get the=20= > following error: > > g++ -I../include -I. -DHAVE_CONFIG_H -D_REENTRANT=20 > -DDATADIR=3D\"/usr/local/share/SheepShaver\" -g -O2 -I/sw/include/SDL=20= > -D_THREAD_SAFE -c main_unix.cpp -o obj/main_unix.o > main_unix.cpp: In function `void TriggerInterrupt()': > main_unix.cpp:1517: error: 'idle_resume' was not declared in this = scope > make: *** [obj/main_unix.o] Error 1 You generally need to update the Basilisk II tree as well. ;-) >> Please tell me your screen depth. Since you could build from sources,=20= >> I'd also appreciate to know the video modes reported by SDL (#define=20= >> DEBUG 1 in video_sdl.cpp) + in Unix/video_blit.cpp, around line 570,=20= >> remove the test for !blitter_found and the abort(), this will output=20= >> the right RGB mask to use for your screen. > > I made the changes to the March snapshot, and in the Console I get=20 > three groups of messages, once at startup, second when the Mac OS=20 > desktop loads (startup is done), and lastly when I shutdown/quit (and=20= > my screen is 1024x768@Thousands of colors): [...] > Current video mode: > 640x480 (ID 81), 32 bpp > the_buffer =3D 0x47c5000, the_buffer_copy =3D 0x465b000 > ### No appropriate blitter found > R/G/B mask values : 0xff0000, 0x00ff00, 0x0000ff (depth =3D 32) > R/G/B shift values : 16/8/0 > monitor.mac_frame_base =3D 047c5000 Seems like SDL guessed a best mode with depth greater than what's is=20 available on your system, or I need some other heuristics to determine=20= the current screen depth. Please try: <http://gwenole.beauchesne.free.fr/sheepshaver/sdl_video_info.c> bash-2.05a$ gcc sdl_video_info.c $(sdl-config --cflags --libs) bash-2.05a$ ./a.out Max screen dimensions: 1152x768 Current screen depth: 16 bpp SDL supports 1152x768x16 with a HWSURFACE (windowed) SDL supports 1152x768x16 with a HWSURFACE (fullscreen) > By gdb I think you mean the CrashReporter log? Anyway, this is the=20 > long message I get per crash, I cannot make any sense of it but=20 > hopefully it helps: > > Thread: 0 > > Exception: EXC_BAD_ACCESS (0x0001) > Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x40810000 > > Thread 0 crashed with PPC Thread State: > srr0: 0x40c6624c srr1: 0x0200f930 vrsave: 0x00000000 > cr: 0x4010e0f1 xer: 0x00000000 lr: 0x40ca7388 ctr: 0x40c60000 > r0: 0x00000000 r1: 0x203fffea r2: 0x00000000 r3: 0x40810000 > r4: 0x2054500c r5: 0x00000000 r6: 0x00002070 r7: 0x00000000 > r8: 0x00000000 r9: 0x2054500c r10: 0x00000006 r11: 0x000002f4 > r12: 0x00000861 r13: 0x00000000 r14: 0x00000000 r15: 0x0002003d > r16: 0x40810000 r17: 0x00000000 r18: 0x408153de r19: 0x4085975c > r20: 0x40814c0e r21: 0x23ffff88 r22: 0x4080020a r23: 0x00000000 > r24: 0x40815532 r25: 0x00000027 r26: 0x00000000 r27: 0x00006054 > r28: 0x00000000 r29: 0x40ca7388 r30: 0x40c60000 r31: 0x68fff000 One of the 68k ROM routine tried to write into the ROM... The weird=20 thing is that we normally catch those kind of errors exactly. Is=20 CrashReporter overriding our Mach exception handler? Let's see with: <http://gwenole.beauchesne.free.fr/sheepshaver/sigsegv_standalone.cpp> 1) In default mode with: g++ sigsegv_standalone.cpp, you must have this=20= file in the BasiliskII/src/Unix/ directory 2) With SDL: g++ sigsegv_standalone.cpp -DUSE_SDL $(sdl-config=20 --cflags --libs) If CrashReporter appears in SDL mode, try to uncomment the=20 SDL_INIT_NOPARACHUTE part. You normally should get on the console=20 something like: bash-2.05a$ ./a.out Checking with SDL sigsegv_test_handler(0x185207b, 0x3a7c) expected fault at 0x185207b expected instruction address range: 0x3a68-0x3ac0 sigsegv_insn_handler(0x1852001, 0x3c28) 00003c28: byte read access r0 (rd =3D 0) sigsegv_insn_handler(0x1852002, 0x3c80) 00003c80: word read access r0 (rd =3D 0) sigsegv_insn_handler(0x1852004, 0x3cd8) 00003cd8: long read access r0 (rd =3D 0) sigsegv_insn_handler(0x1852004, 0x3d2c) 00003d2c: long read access r0 (rd =3D 0) sigsegv_insn_handler(0x1852001, 0x3d80) 00003d80: byte read access r0 (rd =3D 0) sigsegv_insn_handler(0x1852002, 0x3dd8) 00003dd8: word read access r0 (rd =3D 0) sigsegv_insn_handler(0x1852004, 0x3e30) 00003e30: long read access r0 (rd =3D 0) sigsegv_insn_handler(0x1852004, 0x3e84) 00003e84: long read access r0 (rd =3D 0) do_test() returned 0 Bye, Gwenol=E9.= |