! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
-USING: assocs debugger io kernel literals math.parser namespaces
-prettyprint sequences system windows.kernel32 ;
+USING: accessors assocs debugger io kernel literals math.parser
+namespaces prettyprint sequences system windows.kernel32
+windows.ole32 windows.errors math ;
IN: debugger.windows
CONSTANT: seh-names
{ $ STATUS_CONTROL_C_EXIT "STATUS_CONTROL_C_EXIT" }
{ $ STATUS_FLOAT_MULTIPLE_FAULTS "STATUS_FLOAT_MULTIPLE_FAULTS" }
{ $ STATUS_FLOAT_MULTIPLE_TRAPS "STATUS_FLOAT_MULTIPLE_TRAPS" }
+ { 0xe06d7363 "Visual C++ exception" }
}
: seh-name. ( n -- )
M: windows signal-error.
"Windows exception 0x" write
third [ >hex write ] [ seh-name. ] bi nl ;
+
+M: ole32-error error.
+ "COM error 0x" write
+ dup code>> 0xffff,ffff bitand >hex write ": " write
+ message>> write ;
+
+M: windows-error error.
+ "Win32 error 0x" write
+ dup n>> 0xffff,ffff bitand >hex write ": " write
+ string>> write ;
+