1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors assocs debugger io kernel literals math.parser
4 namespaces prettyprint sequences system windows.kernel32
5 windows.ole32 windows.errors math ;
10 { $ STATUS_GUARD_PAGE_VIOLATION "STATUS_GUARD_PAGE_VIOLATION" }
11 { $ STATUS_DATATYPE_MISALIGNMENT "STATUS_DATATYPE_MISALIGNMENT" }
12 { $ STATUS_BREAKPOINT "STATUS_BREAKPOINT" }
13 { $ STATUS_SINGLE_STEP "STATUS_SINGLE_STEP" }
14 { $ STATUS_ACCESS_VIOLATION "STATUS_ACCESS_VIOLATION" }
15 { $ STATUS_IN_PAGE_ERROR "STATUS_IN_PAGE_ERROR" }
16 { $ STATUS_INVALID_HANDLE "STATUS_INVALID_HANDLE" }
17 { $ STATUS_NO_MEMORY "STATUS_NO_MEMORY" }
18 { $ STATUS_ILLEGAL_INSTRUCTION "STATUS_ILLEGAL_INSTRUCTION" }
19 { $ STATUS_NONCONTINUABLE_EXCEPTION "STATUS_NONCONTINUABLE_EXCEPTION" }
20 { $ STATUS_INVALID_DISPOSITION "STATUS_INVALID_DISPOSITION" }
21 { $ STATUS_ARRAY_BOUNDS_EXCEEDED "STATUS_ARRAY_BOUNDS_EXCEEDED" }
22 { $ STATUS_FLOAT_DENORMAL_OPERAND "STATUS_FLOAT_DENORMAL_OPERAND" }
23 { $ STATUS_FLOAT_DIVIDE_BY_ZERO "STATUS_FLOAT_DIVIDE_BY_ZERO" }
24 { $ STATUS_FLOAT_INEXACT_RESULT "STATUS_FLOAT_INEXACT_RESULT" }
25 { $ STATUS_FLOAT_INVALID_OPERATION "STATUS_FLOAT_INVALID_OPERATION" }
26 { $ STATUS_FLOAT_OVERFLOW "STATUS_FLOAT_OVERFLOW" }
27 { $ STATUS_FLOAT_STACK_CHECK "STATUS_FLOAT_STACK_CHECK" }
28 { $ STATUS_FLOAT_UNDERFLOW "STATUS_FLOAT_UNDERFLOW" }
29 { $ STATUS_INTEGER_DIVIDE_BY_ZERO "STATUS_INTEGER_DIVIDE_BY_ZERO" }
30 { $ STATUS_INTEGER_OVERFLOW "STATUS_INTEGER_OVERFLOW" }
31 { $ STATUS_PRIVILEGED_INSTRUCTION "STATUS_PRIVILEGED_INSTRUCTION" }
32 { $ STATUS_STACK_OVERFLOW "STATUS_STACK_OVERFLOW" }
33 { $ STATUS_CONTROL_C_EXIT "STATUS_CONTROL_C_EXIT" }
34 { $ STATUS_FLOAT_MULTIPLE_FAULTS "STATUS_FLOAT_MULTIPLE_FAULTS" }
35 { $ STATUS_FLOAT_MULTIPLE_TRAPS "STATUS_FLOAT_MULTIPLE_TRAPS" }
36 { 0xe06d7363 "Visual C++ exception" }
40 seh-names at [ " (" ")" surround write ] when* ;
42 M: windows signal-error.
43 "Windows exception 0x" write
44 third [ >hex write ] [ seh-name. ] bi nl ;
48 dup code>> 0xffff,ffff bitand >hex write ": " write
51 M: windows-error error.
52 "Win32 error 0x" write
53 dup n>> 0xffff,ffff bitand >hex write ": " write