53得票5回答
关于C++中的结构化异常(SEH),我应该了解些什么?

每个 C++ 开发者都应该了解关于 Structured Exceptions 的重要点是什么?

22得票2回答
Visual C++非托管代码:使用/EHa还是/EHsc来处理C++异常?

如果我在未经管理的C++、Visual Studio 2008或更高版本中创建一个新项目,那我应该选择哪种异常处理模型呢? 我知道/EHa选项会导致代码效率降低,并且也会捕获SEH异常, 对吗? 因此,我一直避免使用该选项,通常选择/EHsc选项,这样我只会捕获实际抛出的C ++异常,而不...

16得票1回答
SEHException未被Try/Catch捕获

我的应用程序会在后台线程中定期检查一个网络文件夹(UNC路径)是否有应用程序更新。它会读取文件的程序集版本,就像这样:Try newVers = System.Reflection.AssemblyName.GetAssemblyName("\\server\app.exe").Ver...

16得票4回答
如何将Win32异常代码转换为字符串?

我不情愿地又得处理Win32结构化异常了。我试图生成一个描述异常的字符串。大部分都很简单,但是我困在一个基本的问题上:我如何将异常代码(GetExceptionCode()的结果或EXCEPTION_RECORD的ExceptionCode成员)转换为描述异常的字符串? 我正在寻找一种将例如...

13得票2回答
在C++ Builder中启用安全异常处理

对于Windows 8应用程序认证,以下是(其中之一)要求: 3.2 您的应用程序必须使用/SafeSEH标志编译,以确保安全的异常处理 3.3 您的应用程序必须使用/NXCOMPAT标志编译,以防止数据执行 3.4 您的应用程序必须使用/DYNAMICBASE标志编译,以进行地址空间布局...

12得票3回答
结构化异常处理程序和Delphi

我想在不使用try except的情况下设置SEH (这是为了我自己的个人知识,以更好地了解SEH如何工作) 以下代码无法正常工作type TSeh = packed record OldSeh:DWORD; NewSeh:DWORD; end; proc...

10得票2回答
在Linux中的SEH等效物或者说如何处理操作系统信号(例如SIGSERV)并保持程序继续执行。

我目前正在开发一个单元测试框架,在该框架中,用户可以创建测试用例并在框架中注册。我还希望确保,如果任何用户测试代码导致崩溃,它不应该使整个框架崩溃,而应该标记为失败。为了实现这一点,我编写了以下代码,以便可以在沙盒函数中运行用户代码。bool SandBox(void *(*fn)(void ...

9得票3回答
Visual Studio 2010中的程序化数据断点

我一直在尝试使用编程数据断点,例如CBreakpoint,通过使用SetThreadContext直接设置调试寄存器。大多数参考资料都表明,即使Visual Studio没有设置该数据断点,它仍会在遇到数据断点时停止。然而,这似乎不是Visual Studio 2010的工作方式。 当我不调...

8得票1回答
LLVM MCJIT / SEH异常处理

最近,我一直在尝试将SEH异常处理与MCJIT一起在LLVM(3.8.1)中运行。到目前为止,还没有成功。 根据网站(http://llvm.org/docs/ExceptionHandling.html)的理解,这基本上是应该如何实现的。使用clang编译一个最小的代码片段会得到几乎相同的...

8得票1回答
“__finally”语句块是否应在“EXCEPTION_CONTINUE_SEARCH”后运行?

在下面的代码中,函数foo递归调用了一次。内部调用导致引发访问冲突异常。外部调用捕获了该异常。 #include <windows.h> #include <stdio.h> void foo(int cont) { __try { ...