c++ - 如何在 C++ 中以编程方式禁用故障转储?

标签 c++ c

我正在编写一个单元测试应用程序,我想让其中一种方法失败。为此,我将 NULL 参数传递给该方法。但这会导致下游崩溃转储。那么我们如何通过代码禁用故障转储生成呢?

我预计会有一些注册表设置,可以通过代码进行更改。

最佳答案

我认为这里的要求是不正确的。很少有信号无法被程序本身捕获。 SIGSEGV(当您访问无效内存/NULL 时引发)就是其中之一。没有操作系统会公开一个可以让您按照程序的意愿控制 SIGSEGV 的接口(interface)。那将是非常糟糕的操作系统设计。

最好重写单元测试,它应该只检查值(如 Joachim 建议的那样),而不是使应用程序崩溃。崩溃测试属于系统测试,不属于单元测试的范围。

关于c++ - 如何在 C++ 中以编程方式禁用故障转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29363202/

相关文章:

c++ - glPointSize 不起作用

c++ - 如何在 C++ 中打印 tchar

c++ - 具有局部静态变量的 ID 生成器 - 线程安全?

c++ - 访问整个数组的顺序程序

c - 我们是否需要释放 GLIB 列表中的每个元素

c - 在动态分配的内存上使用指针算法的未定义行为

c++ - 如何在 openGL 中移动窗口时重绘图片?

c++ - 我正在尝试运行 CUDA 示例,但我在 Ubuntu 16.04 LTS 上遇到 openGL (libGLEW.a) 问题

c++ - 如何确保 SqLite 中的只读事务?

c - 程序忽略 `if ( argc != 2)` 语句