gbeauche
9b99a095f0
MIPS instruction skipper. TODO: check LWL/LWR semantics.
2003-12-20 10:06:18 +00:00
gbeauche
fdf5970c28
Fix subterfuge mode on IRIX/mips. Get PC in both modes for Irix too
2003-12-20 07:43:56 +00:00
gbeauche
d4ad77d734
really fix writes to byte registers
2003-11-11 00:10:39 +00:00
gbeauche
4bce0876c0
fix configure tests. i.e. move up arch_insn_skipper_tests()
2003-11-10 23:54:31 +00:00
gbeauche
1169001df7
Extend x86 instruction skipper to AMD64. Add plenty of arch dependent
...
opcodes to test it. Also fix DEBUG output & writes (zero'ing) to %xH regs
2003-11-10 23:47:39 +00:00
gbeauche
9057fda327
- FreeBSD/i386 sigcontext subterfuge support for instruction skipper
...
- NetBSD/alpha support from Boehm GC
- NetBSD/i386 won't work in sigcontext subterfuge mode unless instruction
is decoded more accurately to compute the effective address. Also note
that NetBSD 1.6 does not support siginfo_t yet.
2003-10-21 23:10:19 +00:00
gbeauche
f8a0f363ea
Solaris/SPARC support for SIGSEGV_FAULT_INSTRUCTION
2003-10-21 21:59:41 +00:00
gbeauche
75df809ff7
fix merge with Mach exception filters, we have preconditions to check
2003-10-13 20:15:41 +00:00
gbeauche
6a60d56bf2
indentation fixes, optimize handle_badaccess() to receive only necessary
...
data and don't copy a struct sigcontext again on x86.
2003-10-13 19:56:17 +00:00
gbeauche
14b51b9519
return something more convenient to debug on errors
2003-10-13 19:43:09 +00:00
gbeauche
46dc8c5391
Make sure reported fault instruction address falls into the expected code
...
range. This is a configure-time safety net that depends on the GCC "Labels
as Values" extension.
2003-10-12 21:41:19 +00:00
gbeauche
cf3d36a3a7
Mach memory fault recovery from Michael Z. Sliczniak
2003-10-12 21:15:52 +00:00
gbeauche
23c4ebcdf3
really fix typo!
2003-09-29 08:04:22 +00:00
gbeauche
aa61c47591
fix typo
2003-09-29 08:02:04 +00:00
gbeauche
a48a804c15
New SIGSEGV API so that skip-instruction requests are more explicit. Yes,
...
that's api change, but that's cooler now for SheepShaver. ;-)
2003-09-29 07:02:58 +00:00
gbeauche
ac027954dc
Bring x86 instruction skipper back to life
2003-08-17 10:52:52 +00:00
gbeauche
deb3da2e9f
New API to ignore a SIGSEGV fault. This should help on SheepShaver/x86 for now
...
since I still don't know why MacOS would like to write to ROM on a particular
test.
2003-05-14 06:50:05 +00:00
gbeauche
177cdee820
configure script is reportedly no longer crashing on FreeBSD when
...
SIGSEGV_SKIP_INSTRUCTION is set.
2002-10-03 15:49:14 +00:00
gbeauche
281460fba0
- New arch support for IP retrieval on SIGSEGV.
2002-07-17 06:51:05 +00:00
gbeauche
69847c3ea2
Correctly guard FreeBSD bits
2002-06-27 14:28:59 +00:00
gbeauche
d7c4d7afbf
Backout "ignoresegv" support on FreeBSD/x86 for now. Unfortunately, the
...
configure script would hang whereas standalone testing will pass all tests.
Any idea why??
- Unix/sigsegv.cpp (ix86_skip_instruction): Add decoder for mozbl instruction.
(SIGSEGV_REGISTER_FILE [FreeBSD/x86]): Note why we start at EDI offset
rather than plain sigcontext pointer. i.e. I don't know sigset_t size
beforehand and don't intend to.
2002-05-20 18:12:01 +00:00
gbeauche
2bd9ee71e8
Implement "ignoresegv" feature on FreeBSD/x86 (tested on FreeBSD 4.5)
...
- sigsegv.cpp (ix86_skip_instruction): Add decoder for movzwl instructions.
(main): oddly, FreeBSD doesn't seem to let a write to a page if it is
write-only. Aka. make the page readable too.
2002-05-20 17:49:04 +00:00
gbeauche
ae93f1e0d8
- Fix compilation on Linux/x86 with SIGCONTEXT_SUBTERFUGE
2002-05-20 16:03:37 +00:00
gbeauche
c2d3d08a7a
- sigsegv.cpp (ix86_skip_instruction): Fix DEBUG compilation.
2002-05-20 16:00:07 +00:00
gbeauche
e81b9ace6d
Implement "ignoresegv" feature on Darwin/ppc (tested on MacOS X)
...
- Unix/sigsegv.cpp (powerpc_decode_instruction): New.
(get_fault_instruction [MacOS X]): Factorize code.
(get_fault_instruction [Linux/m68k]): Don't use expression statement.
- README (ignoresegv): Add Darwin/ppc to list of supported platforms.
2002-05-20 15:56:13 +00:00
gbeauche
c47819020c
Implement "ignoresegv" feature on Linux/ppc:
...
- Unix/sigsegv.cpp (powerpc_skip_instruction): New from SheepShaver code.
- README (ignoresegv): Add Linux/ppc to list of supported platforms.
2002-05-19 21:58:42 +00:00
gbeauche
39d97f5b04
- video_vosh.h (Screen_fault_handler): Move unrecoverable fault case to...
...
- main_unix.cpp (sigsegv_dump_state): ... Here.
- sigsegv.h (sigsegv_fault_handler_t): Rename from sigsegv_handler_t.
- sigsegv.h (sigsegv_state_dumper_t): New.
2002-05-16 15:48:06 +00:00
gbeauche
d5be07f449
- Merge with clisp SIGSEGV library version 1.2 with support added for
...
HP-UX (contributed by Paolo Bonzini)
- Add missing? include <ucontext.h> for Irix and OSF/1 support
2002-05-12 13:51:22 +00:00
gbeauche
266fc18f8a
Implement the "ignoresegv" feature from SheepShaver. This is Unix-specific
...
so far. Target platform is currently Linux/x86.
2002-05-12 11:10:50 +00:00
gbeauche
b8ffa860a2
- Add fault instruction recovery for Linux/ppc and siginfo_t handlers
2002-03-16 21:36:12 +00:00
cebix
dc4d9a56c7
direct addressing works under FreeBSD (says Michael Alyn Miller :-)
2002-02-01 19:25:49 +00:00
cebix
628533940d
- documentation updates
...
- 2001 -> 2002
- version 0.9 -> 1.0
2002-01-15 14:58:43 +00:00
gbeauche
00ef1ff5da
- Add EIP recovery on Linux/x86 when using siginfo_t based signal handlers
2002-01-07 16:30:39 +00:00
gbeauche
054e33c8fc
- small fixes for Linux/ia64
2001-07-07 09:12:15 +00:00
gbeauche
dae4fb627c
- added SIGSEGV support for Linux/Alpha (to be checked), Darwin/PPC
...
- added uniform virtual memory allocation
(supports mmap(), vm_allocate(), or fallbacks to malloc()/free())
- cleaned up memory allocation in main_unix.cpp
2001-06-26 22:35:42 +00:00
gbeauche
fe6ad83317
- use "volatile" to prevent from optimization for writes to page
2001-06-05 12:16:34 +00:00
gbeauche
b7d1ee252c
- fixed "SIGSEGV recovery" not supported case
2001-05-21 03:21:54 +00:00
gbeauche
98192c4ba9
- new and updated SIGSEGV support functions:
...
+ configure script cleanups
+ possible support for Direct Addressing / VOSF on other platforms
2001-05-20 20:31:50 +00:00