2685{
2687#if defined(__x86_64__)
2689#endif
2690
2691#if defined(__REACTOS__) && !defined(_M_AMD64)
2694 {
2695 skip(
"ROSTESTS-240: Skipping ntdll_winetest:exception because it hangs on WHS-Testbot. Set winetest_interactive to run it anyway.\n");
2696 return;
2697 }
2698#endif
2701 trace(
"VirtualAlloc failed\n");
2702 return;
2703 }
2704
2714 "RtlAddVectoredExceptionHandler" );
2716 "RtlRemoveVectoredExceptionHandler" );
2718 "RtlAddVectoredContinueHandler" );
2720 "RtlRemoveVectoredContinueHandler" );
2722 "NtQueryInformationProcess" );
2724 "NtSetInformationProcess" );
2726
2727#ifdef __i386__
2729
2730 if (pRtlAddVectoredExceptionHandler && pRtlRemoveVectoredExceptionHandler)
2731 have_vectored_api =
TRUE;
2732 else
2733 skip(
"RtlAddVectoredExceptionHandler or RtlRemoveVectoredExceptionHandler not found\n");
2734
2736 if (my_argc >= 4)
2737 {
2740
2741 if (
addr != &test_stage)
2742 {
2743 skip(
"child process not mapped at same address (%p/%p)\n", &test_stage,
addr);
2744 return;
2745 }
2746
2747
2749 {
2750 ok(
FALSE,
"child process not being debugged?\n");
2751 return;
2752 }
2753
2754 if (pRtlRaiseException)
2755 {
2756 test_stage = 1;
2757 run_rtlraiseexception_test(0x12345);
2760 test_stage = 2;
2761 run_rtlraiseexception_test(0x12345);
2764 test_stage = 3;
2765 test_outputdebugstring(0);
2766 test_stage = 4;
2767 test_outputdebugstring(2);
2768 test_stage = 5;
2769 test_ripevent(0);
2770 test_stage = 6;
2771 test_ripevent(1);
2772 test_stage = 7;
2773 test_debug_service(0);
2774 test_stage = 8;
2775 test_debug_service(1);
2776 test_stage = 9;
2777 test_breakpoint(0);
2778 test_stage = 10;
2779 test_breakpoint(1);
2780 test_stage = 11;
2781 test_closehandle(0);
2782 test_stage = 12;
2783 test_closehandle(1);
2784 }
2785 else
2786 skip(
"RtlRaiseException not found\n" );
2787
2788
2789 return;
2790 }
2791
2792 test_unwind();
2793 test_exceptions();
2794 test_rtlraiseexception();
2795 test_debug_registers();
2796 test_outputdebugstring(1);
2797 test_ripevent(1);
2798 test_debug_service(1);
2799 test_breakpoint(1);
2800 test_closehandle(0);
2801 test_vectored_continue_handler();
2802 test_debugger();
2803 test_simd_exceptions();
2804 test_fpu_exceptions();
2805 test_dpe_exceptions();
2806 test_prot_fault();
2807 test_thread_context();
2808
2809#elif defined(__x86_64__)
2811 "RtlAddFunctionTable" );
2813 "RtlDeleteFunctionTable" );
2815 "RtlInstallFunctionTableCallback" );
2817 "RtlLookupFunctionEntry" );
2819 "__C_specific_handler" );
2821 "RtlCaptureContext" );
2823 "RtlRestoreContext" );
2825 "RtlUnwindEx" );
2827 "_setjmp" );
2828
2829 test_debug_registers();
2830 test_outputdebugstring(1);
2831 test_ripevent(1);
2832 test_debug_service(1);
2833 test_breakpoint(1);
2834 test_closehandle(0);
2835 test_vectored_continue_handler();
2836 test_virtual_unwind();
2837 test___C_specific_handler();
2838 test_restore_context();
2839
2840 if (pRtlAddFunctionTable && pRtlDeleteFunctionTable && pRtlInstallFunctionTableCallback && pRtlLookupFunctionEntry)
2841 test_dynamic_unwind();
2842 else
2843 skip(
"Dynamic unwind functions not found\n" );
2844
2845#endif
2846
2848}
int strcmp(const char *String1, const char *String2)
#define GetProcAddress(x, y)
#define GetCurrentProcess()
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
GLenum const GLvoid * addr
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
#define PAGE_EXECUTE_READWRITE
const char * winetest_platform
int winetest_get_mainargs(char ***pargv)
LPVOID NTAPI VirtualAlloc(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flAllocationType, IN DWORD flProtect)
BOOL NTAPI VirtualFree(IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD dwFreeType)
#define EXCEPTION_INVALID_HANDLE
#define EXCEPTION_BREAKPOINT