Jump to content


Photo

Emulator crashes when printing


  • Please log in to reply
No replies to this topic

#1 David Purton

David Purton

    Member

  • Members
  • Pip
  • 5 posts
  • Accordance Version:9.x

Posted 23 March 2011 - 09:23 PM

Hi Everyone,

I've just purchased Accordance 9.2.1 (February 2011) and have it up and running really well under Debian Gnu/Linux! At this point I just have the starter set of packages installed while I wait for my media to arrive in the post :).

However, I can't get printing working.

I get the same result under both Linux and Windows 7 (both 32 bit installs). And it doesn't seem to matter whether I use Print-To-PDF or the Adobe PostScript Printer driver with a Virtual Printer (my preferred option, as fonts are included in the PostScript file), or the Apple LaserWriter 8 driver (printing to file).

(For reference, the windows set up I tried is from the download from accordancebible.com. No changes were made to OSDRIVE.HFV in order to reproduce the crash using Print-To-PDF. Accordance itself is on a separate virtual disk which was copied as is from Linux to Windows)

It's not a general printing problem, since printing does work from SimpleText and Finder.

This is what happens:
  • I highlight some text
  • I select "Print selection..."
  • The print dialogue appears
  • I choose all my options (I've tried lots of combinations)
  • I select save
  • I choose a location to write the file out (doesn't matter where I choose)
  • The Mac complains that AppleTalk isn't available and asks me if I want to print later (this happens in SimpleText too, not sure if it is related, or how to fix it... Why is network access required to print to a Virtual Printer???)
  • I elect print later
  • The emulator crashes :(
  • No print file is produced

I built Basilisk II from source with debugging symbols to see if I could see what is happening.

The exception occurs in do_get_mem_word in sysdeps.h:

Program received signal SIGSEGV, Segmentation fault.
0x780a3ecf in do_get_mem_word (a=0x71a461a2) at sysdeps.h:424
424 static inline uae_u32 do_get_mem_word(uae_u16 *a) {uint32 retval; __asm__ ("movzwl %w1,%k0\n\tshll $16,%k0\n\tbswapl %k0\n" : "=&r" (retval) : "m" (*a) : "cc"); return retval;}

This is the backtrace:

#0 0x780a3ecf in do_get_mem_word (a=0x71a461a2) at sysdeps.h:424
#1 0x780a3f70 in get_word (addr=1638162850) at ../uae_cpu/memory.h:129
#2 0x780a5cc5 in op_3010_0_ff (opcode=4144) at cpuemu.cpp:9110
#3 0x78081dcb in m68k_do_execute () at ../uae_cpu/newcpu.cpp:1367
#4 0x78081e1a in m68k_execute () at ../uae_cpu/newcpu.cpp:1384
#5 0x7807e55d in Start680x0 () at ../uae_cpu/basilisk_glue.cpp:146
#6 0x7804bd7b in main (argc=1, argv=0xbffff574) at main_unix.cpp:816

It appears the pointer a (0x71a461a2 in this case) is invalid. The debugger can't read it's contents.

I haven't bothered to build from source under windows, but the crash occurs in the same place, so it seems to be platform independent.

Although I have a reasonable idea about C/C++, this is probably beyond me (and I don't know any assembler).

So, now for some questions:

  • Can anybody else reproduce this?
  • Any guesses as to whether the problem lies in the Emulator or in Accordance?
  • Can someone shed light on the AppleTalk requirements for print to file using a virtual printer?

Look forward to hearing from anyone on how to make some progress!

Thanks,

David




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users