ReactOS  0.4.14-dev-1314-gacf135d
cppexcept.h File Reference
#include <pseh/pseh2.h>
Include dependency graph for cppexcept.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  __type_info
 
struct  __exception
 
struct  __cxx_exception_frame
 
struct  __catchblock_info
 
struct  __tryblock_info
 
struct  __unwind_info
 
struct  __cxx_function_descr
 
struct  this_ptr_offsets
 
struct  __cxx_type_info
 
struct  __cxx_type_info_table
 
struct  __cxx_exception_type
 

Macros

#define CXX_FRAME_MAGIC_VC6   0x19930520
 
#define CXX_FRAME_MAGIC_VC7   0x19930521
 
#define CXX_FRAME_MAGIC_VC8   0x19930522
 
#define CXX_EXCEPTION   0xe06d7363
 
#define EH_NONCONTINUABLE   0x01
 
#define EH_UNWINDING   0x02
 
#define EH_EXIT_UNWIND   0x04
 
#define EH_STACK_INVALID   0x08
 
#define EH_NESTED_CALL   0x10
 
#define TYPE_FLAG_CONST   1
 
#define TYPE_FLAG_VOLATILE   2
 
#define TYPE_FLAG_REFERENCE   8
 
#define FUNC_DESCR_SYNCHRONOUS   1 /* synchronous exceptions only (built with /EHs) */
 
#define CLASS_IS_SIMPLE_TYPE   1
 
#define CLASS_HAS_VIRTUAL_BASE_CLASS   4
 

Typedefs

typedef void(* vtable_ptr) ()
 
typedef struct __type_info type_info
 
typedef struct __exception exception
 
typedef struct __cxx_exception_frame cxx_exception_frame
 
typedef struct __catchblock_info catchblock_info
 
typedef struct __tryblock_info tryblock_info
 
typedef struct __unwind_info unwind_info
 
typedef struct __cxx_function_descr cxx_function_descr
 
typedef void(* cxx_copy_ctor) (void)
 
typedef struct __cxx_type_info cxx_type_info
 
typedef struct __cxx_type_info_table cxx_type_info_table
 
typedef DWORD(* cxx_exc_custom_handler) (PEXCEPTION_RECORD, cxx_exception_frame *, PCONTEXT, EXCEPTION_REGISTRATION_RECORD **, const cxx_function_descr *, int nested_trylevel, EXCEPTION_REGISTRATION_RECORD *nested_frame, DWORD unknown3)
 
typedef struct __cxx_exception_type cxx_exception_type
 

Functions

void WINAPI _CxxThrowException (exception *, const cxx_exception_type *)
 
int CDECL _XcptFilter (NTSTATUS, PEXCEPTION_POINTERS)
 
int CDECL __CppXcptFilter (NTSTATUS, PEXCEPTION_POINTERS)
 
static const chardbgstr_type_info (const type_info *info)
 
static voidget_this_pointer (const this_ptr_offsets *off, void *object)
 

Macro Definition Documentation

◆ CLASS_HAS_VIRTUAL_BASE_CLASS

#define CLASS_HAS_VIRTUAL_BASE_CLASS   4

Definition at line 130 of file cppexcept.h.

◆ CLASS_IS_SIMPLE_TYPE

#define CLASS_IS_SIMPLE_TYPE   1

Definition at line 129 of file cppexcept.h.

◆ CXX_EXCEPTION

#define CXX_EXCEPTION   0xe06d7363

Definition at line 29 of file cppexcept.h.

◆ CXX_FRAME_MAGIC_VC6

#define CXX_FRAME_MAGIC_VC6   0x19930520

Definition at line 26 of file cppexcept.h.

◆ CXX_FRAME_MAGIC_VC7

#define CXX_FRAME_MAGIC_VC7   0x19930521

Definition at line 27 of file cppexcept.h.

◆ CXX_FRAME_MAGIC_VC8

#define CXX_FRAME_MAGIC_VC8   0x19930522

Definition at line 28 of file cppexcept.h.

◆ EH_EXIT_UNWIND

#define EH_EXIT_UNWIND   0x04

Definition at line 35 of file cppexcept.h.

◆ EH_NESTED_CALL

#define EH_NESTED_CALL   0x10

Definition at line 37 of file cppexcept.h.

◆ EH_NONCONTINUABLE

#define EH_NONCONTINUABLE   0x01

Definition at line 33 of file cppexcept.h.

◆ EH_STACK_INVALID

#define EH_STACK_INVALID   0x08

Definition at line 36 of file cppexcept.h.

◆ EH_UNWINDING

#define EH_UNWINDING   0x02

Definition at line 34 of file cppexcept.h.

◆ FUNC_DESCR_SYNCHRONOUS

#define FUNC_DESCR_SYNCHRONOUS   1 /* synchronous exceptions only (built with /EHs) */

Definition at line 108 of file cppexcept.h.

◆ TYPE_FLAG_CONST

#define TYPE_FLAG_CONST   1

Definition at line 73 of file cppexcept.h.

◆ TYPE_FLAG_REFERENCE

#define TYPE_FLAG_REFERENCE   8

Definition at line 75 of file cppexcept.h.

◆ TYPE_FLAG_VOLATILE

#define TYPE_FLAG_VOLATILE   2

Definition at line 74 of file cppexcept.h.

Typedef Documentation

◆ catchblock_info

◆ cxx_copy_ctor

typedef void(* cxx_copy_ctor) (void)

Definition at line 110 of file cppexcept.h.

◆ cxx_exc_custom_handler

typedef DWORD(* cxx_exc_custom_handler) (PEXCEPTION_RECORD, cxx_exception_frame *, PCONTEXT, EXCEPTION_REGISTRATION_RECORD **, const cxx_function_descr *, int nested_trylevel, EXCEPTION_REGISTRATION_RECORD *nested_frame, DWORD unknown3)

Definition at line 139 of file cppexcept.h.

◆ cxx_exception_frame

◆ cxx_exception_type

◆ cxx_function_descr

◆ cxx_type_info

◆ cxx_type_info_table

◆ exception

◆ tryblock_info

◆ type_info

◆ unwind_info

◆ vtable_ptr

typedef void(* vtable_ptr) ()

Definition at line 39 of file cppexcept.h.

Function Documentation

◆ __CppXcptFilter()

int CDECL __CppXcptFilter ( NTSTATUS  ,
PEXCEPTION_POINTERS   
)

◆ _CxxThrowException()

void WINAPI _CxxThrowException ( exception ,
const cxx_exception_type  
)

Definition at line 1574 of file cpp.c.

1575 {
1576  ULONG_PTR args[3];
1577 
1579  args[1] = (ULONG_PTR)object;
1580  args[2] = (ULONG_PTR)type;
1582 }
#define CXX_FRAME_MAGIC_VC6
Definition: cppexcept.h:26
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
Definition: match.c:390
#define EH_NONCONTINUABLE
Definition: stubs.h:9
uint32_t ULONG_PTR
Definition: typedefs.h:64
#define CXX_EXCEPTION
Definition: cppexcept.h:29
VOID WINAPI RaiseException(IN DWORD dwExceptionCode, IN DWORD dwExceptionFlags, IN DWORD nNumberOfArguments, IN CONST ULONG_PTR *lpArguments OPTIONAL)
Definition: except.c:693
#define ULONG_PTR
Definition: config.h:101

◆ _XcptFilter()

int CDECL _XcptFilter ( NTSTATUS  ,
PEXCEPTION_POINTERS   
)

Definition at line 274 of file except.c.

275 {
276  TRACE("(%08x,%p)\n", ex, ptr);
277  /* I assume ptr->ExceptionRecord->ExceptionCode is the same as ex */
279 }
Definition: comerr.c:44
static PVOID ptr
Definition: dispmode.c:27
#define TRACE(s)
Definition: solgame.cpp:4
static LONG msvcrt_exception_filter(struct _EXCEPTION_POINTERS *except)
Definition: except.c:93

◆ dbgstr_type_info()

static const char* dbgstr_type_info ( const type_info info)
inlinestatic

Definition at line 157 of file cppexcept.h.

158 {
159  if (!info) return "{}";
160  return wine_dbg_sprintf( "{vtable=%p name=%s (%s)}",
161  info->vtable, info->mangled, info->name ? info->name : "" );
162 }
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:271

Referenced by dump_obj_locator(), and MSVCRT___RTDynamicCast().

◆ get_this_pointer()

static void* get_this_pointer ( const this_ptr_offsets off,
void object 
)
inlinestatic

Definition at line 165 of file cppexcept.h.

166 {
167  if (!object) return NULL;
168 
169  if (off->vbase_descr >= 0)
170  {
171  int *offset_ptr;
172 
173  /* move this ptr to vbase descriptor */
174  object = (char *)object + off->vbase_descr;
175  /* and fetch additional offset from vbase descriptor */
176  offset_ptr = (int *)(*(char **)object + off->vbase_offset);
177  object = (char *)object + *offset_ptr;
178  }
179 
180  object = (char *)object + off->this_offset;
181  return object;
182 }
smooth NULL
Definition: ftsmooth.c:416
off
Definition: i386-dis.c:3909

Referenced by MSVCRT___RTDynamicCast().