Commit Graph

27 Commits

Author SHA1 Message Date
Jonas Maebe
13902c1c7a * fixed compilation for __ARM_EABI_UNWINDER__ with -dexcdebug
git-svn-id: trunk@43015 -
2019-09-15 17:26:21 +00:00
Jonas Maebe
617cc6984b * call DoUnhandledException instead of RunError(217) when the the psabi eh
unwinder returns an error (this is usually because there is no outer
    exception catching frame anymore -> unhandled exception) (based on patch by
    Cyrax, mantis #35751)

git-svn-id: trunk@42999 -
2019-09-14 17:30:53 +00:00
florian
b8b3a5b523 * cosmetics
git-svn-id: branches/debug_eh@41565 -
2019-03-02 23:04:23 +00:00
florian
0657ce7c02 * get rid of fpc_Resume
git-svn-id: branches/debug_eh@41476 -
2019-02-25 21:43:56 +00:00
florian
6b34e511a0 - removed cdecl from FPC_psabi_begin_catch
git-svn-id: branches/debug_eh@41475 -
2019-02-25 21:25:22 +00:00
Jonas Maebe
5cb5b10f8d * fixed LLVM and non-i386 compilation
git-svn-id: branches/debug_eh@41423 -
2019-02-23 17:03:42 +00:00
florian
8db9b211d5 * fixed unwinding from signal handlers, the approach used now is very simple and clean
git-svn-id: branches/debug_eh@41414 -
2019-02-22 22:01:45 +00:00
florian
b1cc02e417 * reraise has to reset the ref. count to 0
git-svn-id: branches/debug_eh@41383 -
2019-02-19 22:17:27 +00:00
florian
9e67e7311a * change the exception address is only useful if a valid frame is passed
git-svn-id: branches/debug_eh@41377 -
2019-02-18 22:04:08 +00:00
florian
0e25d6f00d * better debug messages
+ initial approach to handle addr and frame

git-svn-id: branches/debug_eh@41368 -
2019-02-17 21:45:18 +00:00
florian
a91f009b7e * cleanup
git-svn-id: branches/debug_eh@41309 -
2019-02-11 20:33:50 +00:00
florian
294c7c9daf * adapt identifiert name
* updates for eh_frame support on native targets
* improved messages

git-svn-id: branches/debug_eh@41306 -
2019-02-11 20:29:02 +00:00
Jonas Maebe
1b48e6abe8 * _Unwind_SetGR/_Unwind_GetGR/_Unwind_SetIP/_Unwind_GetIP implementation for
ARM EABI

git-svn-id: branches/debug_eh@41214 -
2019-02-03 21:10:07 +00:00
Jonas Maebe
ef1757a5a7 + ARM EABI exception handling support for PSABIEH
git-svn-id: branches/debug_eh@41213 -
2019-02-03 21:10:04 +00:00
Jonas Maebe
d835a91a31 * detabbed
git-svn-id: branches/debug_eh@41212 -
2019-02-03 21:10:01 +00:00
Jonas Maebe
42f82f4d40 * the libunwind API resides in libgcc_s on Linux
o also link against libc (the current llvm code generator assumes it for
     memcpy, and libgcc_s depends on it anyway)

git-svn-id: branches/debug_eh@40433 -
2018-12-01 20:30:31 +00:00
Jonas Maebe
aff3a15081 * call runerror(217) instead of halt(217) when using Dwarf-EH in similar
cases as where this happens with the standard SjLj-base exception handling

git-svn-id: branches/debug_eh@40419 -
2018-11-29 21:38:58 +00:00
Jonas Maebe
df0a126064 * abstracted rest of the generic exception handling code through the
texceptionstatehandler class + llvm overrides
  + added FPC_DummyPotentialRaise routine that gets called at the begin and end
    of try-blocks to be able to catch hardware exceptions to a limited extent
    with LLVM

git-svn-id: branches/debug_eh@40418 -
2018-11-29 21:31:40 +00:00
Jonas Maebe
b2608ba02a + fpc_reraise and fpc_raise_nested implementations for psabieh
git-svn-id: branches/debug_eh@40370 -
2018-11-25 21:05:55 +00:00
Jonas Maebe
9c5a62351d * more -dexcdebug output
o also fixed _Unwind_RaiseException declaration (function rather than
     procedure)

git-svn-id: branches/debug_eh@40369 -
2018-11-25 21:05:51 +00:00
Jonas Maebe
8153aa1d00 * fixed frames memory leak when freeing an exception with psabieh
git-svn-id: branches/debug_eh@40368 -
2018-11-25 21:05:47 +00:00
Jonas Maebe
e2664e5c30 * fixed recording caught exceptions on the exception stack in
FPC_psabi_begin_catchh

git-svn-id: branches/debug_eh@40341 -
2018-11-17 16:21:40 +00:00
Jonas Maebe
f4fa4e22b1 * added a bunch of writeln debugging with -dexcdebug
git-svn-id: branches/debug_eh@40335 -
2018-11-17 09:40:33 +00:00
Jonas Maebe
31898da437 * fixed (u)leb reading functions
git-svn-id: branches/debug_eh@40334 -
2018-11-17 09:40:30 +00:00
Jonas Maebe
64ba860478 * added psabi eh helpers called from the code generator to the interface of
the system unit
  * changed a cint to longint as C types are not available there

git-svn-id: branches/debug_eh@40333 -
2018-11-17 09:40:26 +00:00
Jonas Maebe
4bc0e49878 - removed unused FPC_psabieh_can_catch()
* added missing exit in FPC_psabieh_find_action_record
  * fixed type error in call to _Unwind_SetGR() (caught by compiler fix for
    that intrinsic)

git-svn-id: branches/debug_eh@40073 -
2018-10-28 19:54:04 +00:00
Jonas Maebe
b2d1ab7f05 * basic helpers for DWARF/PSABI EH-based exception handling (based on
GCC 4.2.1's libstdc++/libsupc++)
   - compile RTL with -dFPC_USE_PSEABIEH to include
   - the x86-64 compiler currently crashes if it has been compiled with
     optimizations (the eh_return_data_regno function from cpubase
     probably triggers mantis #34385)

git-svn-id: branches/debug_eh@40071 -
2018-10-28 18:16:42 +00:00