草庐IT

EXCEPTION

全部标签

c - 在 Windows 上处理 fpu 异常

我想在Windows上处理fpu异常,比如:#include#include#includeintmain(){doubleb=0;intraised;feclearexcept(FE_ALL_EXCEPT);b/=0;raised=fetestexcept(FE_OVERFLOW|FE_INVALID);if(raised&FE_OVERFLOW){printf("over\n");}if(raised&FE_INVALID){printf("invalid\n");}return0;}但是在Windows上。我试着阅读MSDN,但文档一点也不清楚。我想在x86和amd64架构上使用

c++ - 调试器主循环

我正在尝试在c++/Windows中实现本文中描述的“调试器主循环”:WritingtheDebugger'sMainLoop但我希望任何抛出的异常都能在屏幕上显示错误消息并被调试器捕获。我知道我可以通过给ContinueDebugEvent一些DBG_值来做到这一点???但我不知道它是什么。这个值是多少?我还注意到,当有内容写入控制台时,控制台应用程序会通知调试器异常。我怎样才能从这些东西中过滤出实际的异常?跟“第一次机会”值有关系吗?谢谢:) 最佳答案 调试器会为被调试者中发生的每个异常接收一个异常事件。如果将DBG_CONTI

C 异常处理

我想知道如何在C中处理异常,特别是EXCEPTION_GUARD_PAGE异常。我将尝试更简要地解释一下情况:我想将一个部分/页面部分标记为PAGE_GUARD,每当程序遇到它们时我想执行一些任务,我尝试使用经典的VirtualAlloc引起异常->Write->Exception命中但我知道在C中捕获异常非常感谢您的帮助。提前致谢。 最佳答案 MSDN拥有您需要的一切:UsinganExceptionHandlerThetry-exceptStatement在这种特殊情况下,您需要这样的东西:__try{/*Codethatmay

c++ - 全局关闭 C++ 新运算符异常

有什么方法可以全局关闭new运算符的异常?如果有多个,哪个最好?我试过了,但我真的不确定:#includeusingstd::nothrow;我尝试用谷歌搜索“usingstd::nothrow;”,但没有结果。我正在使用MSVC2010。我当然知道new(std::nothrow)myClass(); 最佳答案 没有。这会破坏很多代码,例如在标准header中,它确实依赖于new抛出。C++委员会意识到将数十种几乎兼容的语言标准化为同一个名称会带来危险,而仅使用5个这样的选项,您就已经拥有32种不兼容的语言。

windows - 在 Windows 上捕获子进程异常

我正在开发一个多平台C++模糊测试应用程序。该应用程序生成一个子进程并检查它是否意外停止。我已经设法在linux上做到这一点,但是,windows异常处理机制让我很难做。我的代码现在执行以下操作:-调用CreateProcess生成进程。-WaitForSingleObject等待它终止。-然后调用GetExitCodeProcess并检查退出代码是否对应于异常。一切正常,我已经用空解引用测试应用程序对其进行了测试,我可以优雅地捕获异常。但是,每次我对此进行测试时,都会出现一个Windows错误消息框,告诉我发送或不发送错误报告。由于模糊器应该是一个自动测试应用程序,我需要以某种方式禁

windows - 如何从trap帧中抓取错误码?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。TheTaoofProgramming以单词开头:Thusspakethemasterprogrammer:"Whenyouhavelearnedtosnatchtheerrorcodefromthetrapframe,itwillbetimeforyoutoleave."请赐教。

c++ - Windows下的异常处理和stacktrace(MinGW/gcc)

我需要使Linux/GCC异常处理系统与Windows/MinGW兼容。注意:我需要从共享库中捕获和回溯异常。这是我在Linux/GCC下的实现方式...标题:#include#includestaticvoidhandler(intsig){//Catchexceptionsswitch(sig){caseSIGABRT:fputs("CaughtSIGABRT:usuallycausedbyanabort()orassert()\n",stderr);break;caseSIGFPE:fputs("CaughtSIGFPE:arithmeticexception,suchasdiv

c++ - 在这种情况下如何防止代码崩溃

intarr[5]={0};inti=8;//outofboundsarr[i]=8;我知道如果(i5)....我可以检查i喜欢这个....我也知道VisualStudio中的SEH,但它看起来不是有效的解决方案。__try{/*code*/}__except(GetExceptionCode()==EXCEPTION_ARRAY_BOUNDS_EXCEEDED)这是行不通的。正如我所见,SEH在诸如除以0、访问protected页面等情况下工作……如何保护我的程序免于崩溃? 最佳答案 不能保证SEH会捕捉到这一点——这取决于您的硬

java - JVM 崩溃了,我不明白为什么

我想我已经找到导致此错误的原因,但我不明白为什么或如何修复它。我曾尝试在两台Windows7和一台Windows8机器上运行这段代码,结果相同。错误并不总是发生,但有时会发生。这是我认为导致它的一段代码。privateWatchKeyregisterPath(Pathpath){try{System.out.println("MakingKeyfor:"+path.toString());System.out.println("ChangesWatcher:"+changesWatcher);WatchKeykey=path.register(changesWatcher,Standa

windows - 通过 Get-WmiObject : Exception calling SetDefaultPrinter : Not Supported 设置默认打印机时出错

概览我正在尝试使用PowerShell在Windows2012R2中设置默认打印机。每当我在本地执行此操作时,它都可以正常工作,但是无论我如何尝试远程运行它(我需要这样做),它总是会失败并出现以下错误。我已经尝试使用域管理员帐户以及我需要为其更改默认打印机的用户凭据,但它仍然失败。错误Exceptioncalling"SetDefaultPrinter":"Notsupported"Atline:1char:1+(Get-WmiObject-ClassWin32_Printer-Filter"(Name='MicrosoftXPSDocumentWrite...+~~~~~~~~~~~