; This file describes the exception definitions.
; The definitions will be used for new databases.

; for each exception:
;  code    stop_at   pass_to_app  name      description
;
;  code is the exception code
;  stop_at is one of stop or nostop - should the debugger suspend
;          the process when the exception occurs
;  pass_to_app is one of app or deb - should the debugger pass
;          the exception to the application or not
;  name    is the exception short name
;  description is the exception description displayed to the user

; Windows exceptions
.win32,wince,bochs,windbg
0xC0000005   stop deb EXCEPTION_ACCESS_VIOLATION         The instruction at 0x%a referenced memory at 0x%a. The memory could not be %s
0x80000002   stop deb EXCEPTION_DATATYPE_MISALIGNMENT    A datatype misalignment error was detected in a load or store instruction
0x80000003   stop deb EXCEPTION_BREAKPOINT               Software breakpoint exception
0x80000004   stop deb EXCEPTION_SINGLE_STEP              Single step exception
0xC000008C   stop deb EXCEPTION_ARRAY_BOUNDS_EXCEEDED    Array bounds exceeded
0xC000008D   stop deb EXCEPTION_FLT_DENORMAL_OPERAND     Floating point denormal operand
0xC000008E   stop deb EXCEPTION_FLT_DIVIDE_BY_ZERO       Floating point divide by zero
0xC000008F   stop deb EXCEPTION_FLT_INEXACT_RESULT       Floating point inexact result
0xC0000090   stop deb EXCEPTION_FLT_INVALID_OPERATION    Floating point invalid operation
0xC0000091   stop deb EXCEPTION_FLT_OVERFLOW             Floating point overflow
0xC0000092   stop deb EXCEPTION_FLT_STACK_CHECK          Floating point stack check
0xC0000093   stop deb EXCEPTION_FLT_UNDERFLOW            Floating point underflow
0xC0000094   stop deb EXCEPTION_INT_DIVIDE_BY_ZERO       Integer divide by zero
0xC0000095   stop deb EXCEPTION_INT_OVERFLOW             Integer overflow
0xC0000096   stop deb EXCEPTION_PRIV_INSTRUCTION         Priveleged instruction
0xC0000006   stop deb EXCEPTION_IN_PAGE_ERROR            The instruction at "0x%a" referenced memory at "0x%a". The required data was not placed into memory because of an I/O error status of "0x%a"
0xC000001D   stop deb EXCEPTION_ILLEGAL_INSTRUCTION      An attempt was made to execute an illegal instruction
0xC0000025   stop deb EXCEPTION_NONCONTINUABLE_EXCEPTION Windows cannot continue from this exception
0xC00000FD   stop deb EXCEPTION_STACK_OVERFLOW           A new guard page for the stack cannot be created (stack overflow)
0xC0000026   stop deb EXCEPTION_INVALID_DISPOSITION      An invalid exception disposition was returned by an exception handler
0x80000001   stop deb EXCEPTION_GUARD_PAGE               A page of memory that marks the end of a data structure such as a stack or an array has been accessed
0xC0000008   stop deb EXCEPTION_INVALID_HANDLE           An invalid HANDLE was specified
0xEEFFACE    stop deb EXCEPTION_BCC_FATAL                Fatal unhandled exception in the BCC compiled program
0xEEDFAE6    stop deb EXCEPTION_BCC_NORMAL               Unhandled exception in the BCC compiled program
0x40010005   stop deb DBG_CONTROL_C                      CTRL+C was input to console process
0x40010008   stop deb DBG_CONTROL_BREAK                  CTRL+BREAK was input to console process

; Linux exceptions
.linux,armlinux
1    stop deb SIGHUP    Hangup
2    stop deb SIGINT    Interrupt
3    stop deb SIGQUIT   Quit
4    stop deb SIGILL    Illegal instruction
5    stop deb SIGTRAP   Trace trap
6    stop deb SIGABRT   Abort
7    stop deb SIGBUS    BUS error
8    stop deb SIGFPE    Floating-point exception
9    stop deb SIGKILL   Kill unblockable
10   stop deb SIGUSR1   User-defined signal 1
11   stop deb SIGSEGV   Segmentation violation
12   stop deb SIGUSR2   User-defined signal 2
13   stop deb SIGPIPE   Broken pipe
14   stop deb SIGALRM   Alarm clock
15   stop deb SIGTERM   Termination
16   stop deb SIGSTKFLT Stack fault
17   stop deb SIGCHLD   Child status has changed
18   stop deb SIGCONT   Continue
19   stop deb SIGSTOP   Stop unblockable
20   stop deb SIGTSTP   Keyboard stop
21   stop deb SIGTTIN   Background read from tty
22   stop deb SIGTTOU   Background write to tty
23   stop deb SIGURG    Urgent condition on socket
24   stop deb SIGXCPU   CPU limit exceeded
25   stop deb SIGXFSZ   File size limit exceeded
26   stop deb SIGVTALRM Virtual alarm clock
27   stop deb SIGPROF   Profiling alarm clock
28   stop deb SIGWINCH  Window size change
29   stop deb SIGIO     I/O now possible
30   stop deb SIGPWR    Power failure restart
31   stop deb SIGSYS    Bad system call

; Mac OS X exceptions
.macosx,iphone
1    stop deb SIGHUP       terminal line hangup
2    stop deb SIGINT       interrupt program
3    stop deb SIGQUIT      quit program
4    stop deb SIGILL       illegal instruction
5    stop deb SIGTRAP      trace trap
6    stop deb SIGABRT      abort program
7    stop deb SIGEMT       emulate instruction executed
8    stop deb SIGFPE       floating-point exception
9    stop deb SIGKILL      kill program
10   stop deb SIGBUS       bus error
11   stop deb SIGSEGV      segmentation violation
12   stop deb SIGSYS       non-existent system call invoked
13   stop deb SIGPIPE      write on a pipe with no reader
14   stop deb SIGALRM      real-time timer expired
15   stop deb SIGTERM      software termination signal
16   stop deb SIGURG       urgent condition present on socket
17   stop deb SIGSTOP      stop
18   stop deb SIGTSTP      stop signal generated from keyboard
19   stop deb SIGCONT      continue after stop
20   stop deb SIGCHLD      child status has changed
21   stop deb SIGTTIN      background read attempted from control terminal
22   stop deb SIGTTOU      background write attempted to control terminal
23   stop deb SIGIO        I/O is possible on a descriptor
24   stop deb SIGXCPU      cpu time limit exceeded
25   stop deb SIGXFSZ      file size limit exceeded
26   stop deb SIGVTALRM    virtual time alarm
27   stop deb SIGPROF      profiling timer alarm
28   stop deb SIGWINCH     Window size change
29   stop deb SIGINFO      status request from keyboard
30   stop deb SIGUSR1      User defined signal 1
31   stop deb SIGUSR2      User defined signal 2

; Symbian exceptions
.epoc
1    stop deb   EExcIntegerDivideByZero   An integer divide by zero
2    stop deb   EExcSingleStep            Single step
3    stop deb   EExcBreakPoint            Breakpoint
4    stop deb   EExcIntegerOverflow       Integer overflow
5    stop deb   EExcBoundsCheck           An bounds check
6    stop deb   EExcInvalidOpCode         An invalid instruction
7    stop deb   EExcDoubleFault           A double fault
8    stop deb   EExcStackFault            A stack fault
9    stop deb   EExcAccessViolation       An access violation
10   stop deb   EExcPrivInstruction       A priveledged instruction
11   stop deb   EExcAlignment             An alignment
12   stop deb   EExcPageFault             A page fault
13   stop deb   EExcFloatDenormal         A floating point
14   stop deb   EExcFloatDivideByZero     A floating point
15   stop deb   EExcFloatInexactResult    A floating point
16   stop deb   EExcFloatInvalidOperation A floating point
17   stop deb   EExcFloatOverflow         A floating point
18   stop deb   EExcFloatStackCheck       A floating point
19   stop deb   EExcFloatUnderflow        A floating point
20   stop deb   EExcAbort                 An abort
21   stop deb   EExcKill                  Kill
22   stop deb   EExcUserInterrupt         A user interrupt
23   stop deb   EExcDataAbort             A data abort
24   stop deb   EExcCodeAbort             A code abort
25   stop deb   EExcMaxNumber             An unknown
26   stop deb   EExcInvalidVector         Invalid vector
100  stop deb   ThreadPanic               Thread paniced
101  stop deb   ProcessPanic              Process paniced

; Bochs IA-32 emulator: raw exceptions
; (in addition to MS Windows exceptions defined above)
.bochs
0x00          stop deb DIVIDE_BY_ZERO                    Divide by zero
0x01          stop deb SINGLE_STEP                       Single step
0x03          stop deb BREAKPOINT                        Breakpoint
0x04          stop deb INTO                              Interrupt on overflow
0x06          stop deb INVALID_OPCODE                    Invalid opcode
0x0C          stop deb STACK_EXCEPTION                   Stack exception
0x0D          stop deb GENERAL_PROTECTION_FAULT          General protection fault
0x0E          stop deb PAGE_FAULT                        Page fault at 0x%a, error code %a
0x10          stop deb FLOATING_POINT_ERROR              Floating point error

.gdb
; gdb signals
1   stop deb SIGHUP     Hangup
2   stop deb SIGINT     Interrupt
3   stop deb SIGQUIT    Quit
4   stop deb SIGILL     Illegal instruction
5   stop deb SIGTRAP    Trace/breakpoint trap
6   stop deb SIGABRT    Aborted
7   stop deb SIGEMT     Emulation trap
8   stop deb SIGFPE     Arithmetic exception
9   stop deb SIGKILL    Killed
10  stop deb SIGBUS     Bus error
11  stop deb SIGSEGV    Segmentation fault
12  stop deb SIGSYS     Bad system call
13  stop deb SIGPIPE    Broken pipe
14  stop deb SIGALRM    Alarm clock
15  stop deb SIGTERM    Terminated
16  stop deb SIGURG     Urgent I/O condition
17  stop deb SIGSTOP    Stopped (signal)
18  stop deb SIGTSTP    Stopped (user)
19  stop deb SIGCONT    Continued
20  stop deb SIGCHLD    Child status changed
21  stop deb SIGTTIN    Stopped (tty input)
22  stop deb SIGTTOU    Stopped (tty output)
23  stop deb SIGIO      I/O possible
24  stop deb SIGXCPU    CPU time limit exceeded
25  stop deb SIGXFSZ    File size limit exceeded
26  stop deb SIGVTALRM  Virtual timer expired
27  stop deb SIGPROF    Profiling timer expired
28  stop deb SIGWINCH   Window size changed
29  stop deb SIGLOST    Resource lost
30  stop deb SIGUSR1    User defined signal 1
31  stop deb SIGUSR2    User defined signal 2
32  stop deb SIGPWR     Power fail/restart
33  stop deb SIGPOLL    Pollable event occurred
34  stop deb SIGWIND    SIGWIND
35  stop deb SIGPHONE   SIGPHONE
36  stop deb SIGWAITING Process's LWPs are blocked
37  stop deb SIGLWP     Signal LWP
38  stop deb SIGDANGER  Swap space dangerously low
39  stop deb SIGGRANT   Monitor mode granted
40  stop deb SIGRETRACT Need to relinquish monitor mode
41  stop deb SIGMSG     Monitor mode data available
42  stop deb SIGSOUND   Sound completed
43  stop deb SIGSAK     Secure attention
44  stop deb SIGPRIO    SIGPRIO
