gbeauche
c10046c137
Check that we can really read at the faulty eip in Windows prior to decoding
...
the instruction. Also fix the unrecoverable fault dump to really be useful.
2004-12-11 13:07:38 +00:00
gbeauche
0e52edfbd0
ppc64 fixes
2004-12-02 23:29:52 +00:00
gbeauche
68083d1102
Integrate SIGSEGV recovery from libsigsegv for Windows and Cygwin.
...
Also implement instruction skipper for Windows/x86.
2004-11-13 23:44:11 +00:00
gbeauche
815390707a
Decode MOVSX r32, r/m16 (generated by icc v8.0 on x86)
2004-02-16 16:02:48 +00:00
gbeauche
93c472ec0a
cosmetic fixes when printing movsbq operation summary
2004-01-22 00:00:55 +00:00
gbeauche
7a0681c44b
handle (skip) x86 movsbl instructions
2004-01-21 23:50:06 +00:00
gbeauche
1a6c128ab2
Summary: possible support of SheepShaver on Zaurus PDAs
...
Add Linux/ARM instruction skipping, includes support for ARMv4+ halfword
and signed data transfer instructions. Note that load/store multiple are
not handled and someone has to make sure post-incr/write-back logic is
correctly implemented.
2004-01-21 23:14:28 +00:00
nigel
2208c5460b
Added missing switch value to eliminate a warning
2004-01-20 23:49:32 +00:00
gbeauche
d09df6d1fa
ARM/linux sigsegv handler. Instruction skipper yet to be written for
...
happy Zaurus owners.
2004-01-19 16:59:13 +00:00
cebix
9e7932abf0
Happy New Year! :)
2004-01-12 15:29:31 +00:00
gbeauche
c48515b6d5
Instruction skipper for Solaris/SPARC.
2003-12-20 23:22:25 +00:00
gbeauche
47f64bdcb8
Add support for Linux/hppa, FreeBSD/alpha. Misc debugging output.
2003-12-20 21:50:08 +00:00
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