2690{
2692#if defined(__x86_64__)
2694#endif
2695
2696#if defined(__REACTOS__) && !defined(_M_AMD64)
2699 {
2700 skip(
"ROSTESTS-240: Skipping ntdll_winetest:exception because it hangs on WHS-Testbot. Set winetest_interactive to run it anyway.\n");
2701 return;
2702 }
2703#endif
2706 trace(
"VirtualAlloc failed\n");
2707 return;
2708 }
2709
2719 "RtlAddVectoredExceptionHandler" );
2721 "RtlRemoveVectoredExceptionHandler" );
2723 "RtlAddVectoredContinueHandler" );
2725 "RtlRemoveVectoredContinueHandler" );
2727 "NtQueryInformationProcess" );
2729 "NtSetInformationProcess" );
2731
2732#ifdef __i386__
2734
2735 if (pRtlAddVectoredExceptionHandler && pRtlRemoveVectoredExceptionHandler)
2736 have_vectored_api =
TRUE;
2737 else
2738 skip(
"RtlAddVectoredExceptionHandler or RtlRemoveVectoredExceptionHandler not found\n");
2739
2741 if (my_argc >= 4)
2742 {
2745
2746 if (
addr != &test_stage)
2747 {
2748 skip(
"child process not mapped at same address (%p/%p)\n", &test_stage,
addr);
2749 return;
2750 }
2751
2752
2754 {
2755 ok(
FALSE,
"child process not being debugged?\n");
2756 return;
2757 }
2758
2759 if (pRtlRaiseException)
2760 {
2761 test_stage = 1;
2762 run_rtlraiseexception_test(0x12345);
2765 test_stage = 2;
2766 run_rtlraiseexception_test(0x12345);
2769 test_stage = 3;
2770 test_outputdebugstring(0);
2771 test_stage = 4;
2772 test_outputdebugstring(2);
2773 test_stage = 5;
2774 test_ripevent(0);
2775 test_stage = 6;
2776 test_ripevent(1);
2777 test_stage = 7;
2778 test_debug_service(0);
2779 test_stage = 8;
2780 test_debug_service(1);
2781 test_stage = 9;
2782 test_breakpoint(0);
2783 test_stage = 10;
2784 test_breakpoint(1);
2785 test_stage = 11;
2786 test_closehandle(0);
2787 test_stage = 12;
2788 test_closehandle(1);
2789 }
2790 else
2791 skip(
"RtlRaiseException not found\n" );
2792
2793
2794 return;
2795 }
2796
2797 test_unwind();
2798 test_exceptions();
2799 test_rtlraiseexception();
2800 test_debug_registers();
2801 test_outputdebugstring(1);
2802 test_ripevent(1);
2803 test_debug_service(1);
2804 test_breakpoint(1);
2805 test_closehandle(0);
2806 test_vectored_continue_handler();
2808 test_simd_exceptions();
2809 test_fpu_exceptions();
2810 test_dpe_exceptions();
2811 test_prot_fault();
2812 test_thread_context();
2813
2814#elif defined(__x86_64__)
2816 "RtlAddFunctionTable" );
2818 "RtlDeleteFunctionTable" );
2820 "RtlInstallFunctionTableCallback" );
2822 "RtlLookupFunctionEntry" );
2824 "__C_specific_handler" );
2826 "RtlCaptureContext" );
2828 "RtlRestoreContext" );
2830 "RtlUnwindEx" );
2832 "_setjmp" );
2833
2834 test_debug_registers();
2835 test_outputdebugstring(1);
2836 test_ripevent(1);
2837 test_debug_service(1);
2838 test_breakpoint(1);
2839 test_closehandle(0);
2840 test_vectored_continue_handler();
2841 test_virtual_unwind();
2842 test___C_specific_handler();
2843 test_restore_context();
2844
2845 if (pRtlAddFunctionTable && pRtlDeleteFunctionTable && pRtlInstallFunctionTableCallback && pRtlLookupFunctionEntry)
2846 test_dynamic_unwind();
2847 else
2848 skip(
"Dynamic unwind functions not found\n" );
2849
2850#endif
2851
2853}
#define GetProcAddress(x, y)
#define GetCurrentProcess()
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
_ACRTIMP int __cdecl _ACRTIMP int __cdecl _ACRTIMP int __cdecl _ACRTIMP int __cdecl _ACRTIMP int __cdecl _ACRTIMP int __cdecl _ACRTIMP int __cdecl sscanf(const char *, const char *,...) __WINE_CRT_SCANF_ATTR(2
_ACRTIMP int __cdecl strcmp(const char *, const char *)
GLenum const GLvoid * addr
const char * winetest_platform
#define EXCEPTION_INVALID_HANDLE
#define EXCEPTION_BREAKPOINT
static void test_debugger(const char *argv0)
#define PAGE_EXECUTE_READWRITE
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)