您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AddVectoredExceptionHandler函数代码示例

51自学网 2021-06-01 19:45:39
  C++
这篇教程C++ AddVectoredExceptionHandler函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中AddVectoredExceptionHandler函数的典型用法代码示例。如果您正苦于以下问题:C++ AddVectoredExceptionHandler函数的具体用法?C++ AddVectoredExceptionHandler怎么用?C++ AddVectoredExceptionHandler使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了AddVectoredExceptionHandler函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: RemoveVectoredExceptionHandler

PVOID dyn_AddVectoredExceptionHandler(ULONG isFirst, PVECTORED_EXCEPTION_HANDLER handler){   PVOID handlerHandle;   if (isFirst) {      RemoveVectoredExceptionHandler(fake_AVEH_handle);      handlerHandle = AddVectoredExceptionHandler(isFirst,handler);      fake_AVEH_handle = AddVectoredExceptionHandler         (isFirst,(PVECTORED_EXCEPTION_HANDLER)dyn_trapHandler);   }   else {      handlerHandle = AddVectoredExceptionHandler(isFirst,handler);   }   return handlerHandle;}
开发者ID:aiaxun,项目名称:patharmor,代码行数:15,


示例2: ut_sigaction

/* * ut_sigaction -- a sigaction that cannot return < 0 */intut_sigaction(const char *file, int line, const char *func,		int signum, struct sigaction *act, struct sigaction *oldact){#ifndef _WIN32	int retval = sigaction(signum, act, oldact);	if (retval != 0)		ut_fatal(file, line, func, "!sigaction: %s", strsignal(signum));	return retval;#else	if (signum == SIGABRT) {		DWORD dwMode = GetErrorMode();		SetErrorMode(dwMode | SEM_NOGPFAULTERRORBOX |			SEM_FAILCRITICALERRORS);		_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);	}	if (signum == SIGSEGV) {		Sa_handler = act->sa_handler;		Signum = signum;		AddVectoredExceptionHandler(0, exception_handler);	}	_crt_signal_t retval = signal(signum, act->sa_handler);	if (retval == SIG_ERR)		ut_fatal(file, line, func, "!signal: %d", signum);	if (oldact != NULL) {		oldact->sa_handler = retval;	}	return 0;#endif}
开发者ID:JLLLinn,项目名称:nvml,代码行数:35,


示例3: main

int main(int argc, char *argv[]){	if (argc != 2 && argc != 3) {		fprintf(stderr, "Usage: %s <filename>/n", argv[0]);		return 1;	}	if (argc == 3)		fault_count_fname = argv[2];	else		fault_count_fname = "fault_cnt.out";	so_init_loader();	if (AddVectoredExceptionHandler(HANDLER_CALL_FIRST,					(PVECTORED_EXCEPTION_HANDLER)test_segv_handler) < 0) {		fprintf(stderr, "cannot set signal handler/n");		return 1;	}	so_execute(argv[1], argv+1);	// Shouldn't reach here	return 1;}
开发者ID:murarugeorgec,项目名称:so-assignments,代码行数:25,


示例4: DYNINSTinitializeTrapHandler

/* registers the trap handler by calling AddVectoredExceptionHandler */int DYNINSTinitializeTrapHandler(){   fake_AVEH_handle = AddVectoredExceptionHandler      (RT_TRUE, (PVECTORED_EXCEPTION_HANDLER)dyn_trapHandler);   rtdebug_printf("RTLIB: added vectored trap handler/n");   return fake_AVEH_handle != 0;}
开发者ID:aiaxun,项目名称:patharmor,代码行数:9,


示例5: SetSignalHandler

void SetSignalHandler(const FuzzingOptions& Options) {  HandlerOpt = &Options;  if (Options.UnitTimeoutSec > 0)    Timer.SetTimer(Options.UnitTimeoutSec / 2 + 1);  if (Options.HandleInt || Options.HandleTerm)    if (!SetConsoleCtrlHandler(CtrlHandler, TRUE)) {      DWORD LastError = GetLastError();      Printf("libFuzzer: SetConsoleCtrlHandler failed (Error code: %lu)./n",        LastError);      exit(1);    }  if (Options.HandleSegv || Options.HandleBus || Options.HandleIll ||      Options.HandleFpe)    if (!AddVectoredExceptionHandler(1, ExceptionHandler)) {      Printf("libFuzzer: AddVectoredExceptionHandler failed./n");      exit(1);    }  if (Options.HandleAbrt)    if (SIG_ERR == signal(SIGABRT, CrashHandler)) {      Printf("libFuzzer: signal failed with %d/n", errno);      exit(1);    }}
开发者ID:anupam128,项目名称:llvm,代码行数:27,


示例6: main

int main(int argc, char **argv) {  std::set_new_handler([]() {    errs() << "new: " << strerror(errno) << '/n';    exit(1);  });  sys::PrintStackTraceOnErrorSignal(argv[0], true);  PrettyStackTraceProgram _(argc, argv);#ifdef _WIN32  AddVectoredExceptionHandler(0, stackOverflow);#endif  cl::AddExtraVersionPrinter([](raw_ostream &os) {    os << "Ayane (https://github.com/russellw/ayane):/n";    os << "  Ayane version " version "/n";#ifndef __OPTIMIZE__    os << "  DEBUG build";#else    os << "  Optimized build";#endif#ifndef NDEBUG    os << " with assertions";#endif    os << "./n";  });  cl::ParseCommandLineOptions(argc, argv);  for (auto filename : inputFilenames) {    parsePython(filename);    outs() << filename << '/n';    outs().flush();  }  return 0;}
开发者ID:russellw,项目名称:ayane,代码行数:35,


示例7: HookInt3

    /// <summary>    /// Perform int3 hook    /// </summary>    /// <returns>true on success</returns>    bool HookInt3()    {        this->_newCode[0] = 0xCC;        this->_origSize = sizeof( this->_newCode[0] );        // Setup handler        if (this->_vecHandler == nullptr)            this->_vecHandler = AddVectoredExceptionHandler( 1, &DetourBase::VectoredHandler );        if (!this->_vecHandler)            return false;        this->_breakpoints.insert( std::make_pair( this->_original, (DetourBase*)this ) );        // Save original code        memcpy( this->_origCode, this->_original, this->_origSize );        // Write break instruction        DWORD flOld = 0;        VirtualProtect( this->_original, this->_origSize, PAGE_EXECUTE_READWRITE, &flOld );        memcpy( this->_original, this->_newCode, this->_origSize );        VirtualProtect( this->_original, this->_origSize, flOld, &flOld );        WriteProcessMemory( GetCurrentProcess(), this->_original, this->_newCode, this->_origSize, NULL );        return this->_hooked = TRUE;    }
开发者ID:AnyMaster,项目名称:Blackbone,代码行数:31,


示例8: DllMain

BOOL APIENTRY DllMain ( HMODULE hModule, DWORD  reason, LPVOID lpReserved ) {    if ( reason == DLL_PROCESS_ATTACH ) {        Offsets.Initialize();        Engine.Initialize();		CreateHackMenu();        HMODULE aCI = GetModuleHandleA ( "libnp.dll" );		        if ( aCI != NULL ) {            MessageBoxA ( NULL, "This Hack doesn't support this game version", "Game Version Not Supported", MB_OK | MB_ICONERROR );            exit ( 1 );        }		aCI = GetModuleHandleA ( "teknomw3.dll" );		if ( aCI != NULL ) {            MessageBoxA ( NULL, "This Hack doesn't support this game version", "Game Version Not Supported", MB_OK | MB_ICONERROR );            exit ( 1 );        }				MessageBoxA(NULL, "Hack sucesfully injected. Press INSERT or DELETE do show up the menu./nIf it doesn't work... IDK what could be wwrong...", "Sucess", MB_OK);        Engine.UiShowList = ( tUiShowList ) Hook.DetourFunction ( ( BYTE* ) Offsets.UIShowList_OFFS, ( BYTE* ) &hkUIShowList, 5 );				AddVectoredExceptionHandler(1,pVectoredExceptionHandler); 		*(DWORD*)Offsets.dwDVar = 0x0; //Set DVar to 0 so that an exception happens at 0x5A14F7    }    return TRUE;}
开发者ID:vice655,项目名称:c-knowledge,代码行数:29,


示例9: c_to_factor_toplevel

void c_to_factor_toplevel(CELL quot){	if(!AddVectoredExceptionHandler(0, (void*)exception_handler))		fatal_error("AddVectoredExceptionHandler failed", 0);	c_to_factor(quot);	RemoveVectoredExceptionHandler((void*)exception_handler);}
开发者ID:ehird,项目名称:factor,代码行数:7,


示例10: assert

void CEeExecutor::AddExceptionHandler(){    assert(g_eeExecutor == nullptr);    g_eeExecutor = this;#if defined(_WIN32)    m_handler = AddVectoredExceptionHandler(TRUE, &CEeExecutor::HandleException);    assert(m_handler != NULL);#elif defined(__ANDROID__)    struct sigaction sigAction;    sigAction.sa_handler	= nullptr;    sigAction.sa_sigaction	= &HandleException;    sigAction.sa_flags		= SA_SIGINFO;    sigemptyset(&sigAction.sa_mask);    int result = sigaction(SIGSEGV, &sigAction, nullptr);    assert(result >= 0);#elif defined(__APPLE__)    kern_return_t result = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &m_port);    assert(result == KERN_SUCCESS);    m_handlerThread = std::thread([this] () {        HandlerThreadProc();    });    result = mach_port_insert_right(mach_task_self(), m_port, m_port, MACH_MSG_TYPE_MAKE_SEND);    assert(result == KERN_SUCCESS);    result = thread_set_exception_ports(mach_thread_self(), EXC_MASK_BAD_ACCESS, m_port, EXCEPTION_STATE | MACH_EXCEPTION_CODES, STATE_FLAVOR);    assert(result == KERN_SUCCESS);    result = mach_port_mod_refs(mach_task_self(), m_port, MACH_PORT_RIGHT_SEND, -1);    assert(result == KERN_SUCCESS);#endif}
开发者ID:SirNade,项目名称:Play-,代码行数:34,


示例11: main

int main(int argc, char **argv){		int tid1 = 10, tid2 = 30;		AddVectoredExceptionHandler(1, CustomExceptionHandler);				if ((hThreads[0] = CreateThread(NULL, 0, thredFunc, &tid1, 0, NULL)) == NULL)		{			printf ("Thread1 cannot be created! Error: %d", GetLastError());			return -1;		}		if ((hThreads[1] = CreateThread(NULL, 0, thredFunc, &tid2, 0, NULL)) == NULL)		{			printf ("Thread2 cannot be created! Error: %d", GetLastError());			return -1;		}		printf("Threads created!/n");		Sleep(6000);/*				printf("Queueing user APCs.../n");		QueueUserAPC(threadAPC, hThreads[0], tid1);		QueueUserAPC(threadAPC, hThreads[1], tid2);		Sleep(3000);*/		printf("Raising exception in all threads!/n");		RaiseExceptionInThread(hThreads[0], throwCustomException);		RaiseExceptionInThread(hThreads[1], throwCustomException);		WaitForMultipleObjects(2, hThreads, TRUE, INFINITE);		return 0;}
开发者ID:alexsardan,项目名称:MTCP-windows,代码行数:31,


示例12: swprintf

CPipeServer::CPipeServer(void){	attached=FALSE;	swprintf(datapipename, 256,L"////.//pipe//cemonodc_pid%d", GetCurrentProcessId());	//swprintf(eventpipename, 256,L"////.//pipe//cemonodc_pid%d_events", GetCurrentProcessId());	AddVectoredExceptionHandler(1, ErrorFilter);}
开发者ID:Akheon23,项目名称:cheat-engine,代码行数:8,


示例13: Interrupt_3

BOOL Interrupt_3(){	PVOID Handle = AddVectoredExceptionHandler(1, VectoredHandler);	SwallowedException = TRUE;	__debugbreak();	RemoveVectoredExceptionHandler(Handle);	return SwallowedException;}
开发者ID:security-geeks,项目名称:al-khaser,代码行数:8,


示例14: HwDetourAttach

BOOL HwDetourAttach( DWORD dwLineAddress, DWORD dwType, DWORD dwMonitorLen, DWORD dwExceptionHandler){	HANDLE hThreadSnap;	THREADENTRY32 te32;	static BOOL bExceptionHandlerSet = FALSE;	if (bExceptionHandlerSet == FALSE)	{		g_hVectorHandle = 			AddVectoredExceptionHandler(1, (PVECTORED_EXCEPTION_HANDLER)VectoredHandler);		bExceptionHandlerSet = !bExceptionHandlerSet;	}	BOOL bHaveFreeDbgBreak = FALSE;	for(int i = 0; i < 4; i++)	{		if( TRUE == g_ExceptionInfo[i].bIsFree)		{			bHaveFreeDbgBreak = TRUE;			break;		}	}	if (bHaveFreeDbgBreak == FALSE)	{		return FALSE;	}	hThreadSnap =  CreateToolhelp32Snapshot(  TH32CS_SNAPTHREAD, NULL  );	if(  hThreadSnap == INVALID_HANDLE_VALUE  ) 		return FALSE; 	te32.dwSize = sizeof(  THREADENTRY32  ); 	if(  Thread32First(  hThreadSnap, &te32 ) )	{		do		{  			if(  te32.th32OwnerProcessID != GetCurrentProcessId() || 				 te32.th32ThreadID		 == GetCurrentThreadId() )				continue;			InstDbgBreak2Thrd(  te32.th32ThreadID, dwLineAddress, dwType, dwMonitorLen );		} while(  Thread32Next(  hThreadSnap, &te32 ) );	}	for(int i = 0; i < 4; i++)	{		if( TRUE == g_ExceptionInfo[i].bIsFree)		{			g_ExceptionInfo[i].bIsFree = FALSE;			g_ExceptionInfo[i].dwLineAddr = dwLineAddress;			g_ExceptionInfo[i].dwAccessType = dwType;			g_ExceptionInfo[i].dwExceptionHanler = dwExceptionHandler;			break;		}	}	return TRUE;}
开发者ID:danieljiang0415,项目名称:gh,代码行数:58,


示例15: _fork_override_cygwin_exceptions

int_fork_override_cygwin_exceptions(){    HANDLE hr;    hr = AddVectoredExceptionHandler(1, &_fork_cygwin_exception_handler);    assert(hr != NULL);    hr = AddVectoredContinueHandler(1, &_fork_cygwin_continue_handler);    assert(hr != NULL);}
开发者ID:talos-vulndev,项目名称:afl-cygwin,代码行数:9,


示例16: main

int main(int argc, char *argv[]){	AddVectoredExceptionHandler(1,clsCrashHandler::ErrorReporter);    if (!IsUserAdmin())    {        MessageBoxW(NULL,L"You didn
C++ AddVertex函数代码示例
C++ AddValueToSplayTree函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。