当前位置: 首页 > 面试题库 >

如何以编程方式在C / C ++中引起核心转储

杭昊空
2023-03-14
问题内容

我想在我的C ++应用程序中的特定位置强制进行核心转储。

我知道我可以通过执行以下操作来做到这一点:

int * crash = NULL;
*crash = 1;

但是我想知道是否有更清洁的方法?

我正在使用Linux。


问题答案:

提高信号号6(SIGABRT在Linux中)是一种方法(尽管请记住,并非所有POSIX实现中SIGABRT都 必须
为6,因此,SIGABRT如果不是quick’n,则可能需要使用值本身’脏调试代码)。

#include <signal.h>
: : :
raise (SIGABRT);

调用abort()也会导致核心转储,你甚至可以做到这一点 _,而不_通过调用终止你的过程fork(),然后abort()在子-



 类似资料:
  • 问题内容: 我的程序是用C ++编写的。使用-g3-O0-ggdb标志使用gcc编译。当它崩溃时,我想打开它的核心转储。它会创建核心转储文件,还是我需要做一些事情以在程序本身或在执行该文件的计算机上启用核心转储创建?该文件的创建位置以及名称是什么? 问题答案: 您需要设置。如果此参数的值为0,则不会创建coredump文件。这样做:并检查是否一切正确。当应用程序完成某些不适当的操作时,将创建cor

  • 我不明白我做错了什么。我的代码应该只是从0增加I:0.1,并在每个位置增加0.5,这真的很简单,但是我得到的却是。 有人能帮我一下吗?

  • 问题内容: 我在纱线簇中运行我的spark应用程序。在我的代码中,我使用队列的可用数量核心在数据集中创建分区: 我的问题:如何通过编程方式而不是通过配置获取可用的队列核心数? 问题答案: 有多种方法可以从Spark获取执行程序的数量和集群中的核心数量。这是我过去使用的一些Scala实用程序代码。您应该可以轻松地使其适应Java。有两个关键思想: 工人人数是执行者人数减去一或。 每个工人的核心数可以

  • 问题内容: 如果我们有以下代码片段: 在终端中,输入请求如下所示 如何以编程方式模拟用户的输入。 问题答案: 这是一个示例,该示例如何使用函数来操纵的输入缓冲区,以从检索假输入 看到它正常工作 另一个选择(与JoachimPileborg在其评论恕我直言中所说的更接近)是将阅读代码放入单独的函数中,例如 这使您可以进行不同的测试和生产要求,例如

  • 我已经从容器A复制了一个文件1.txt到容器b。 我还能够获得复制文件的完整URL,并能够在相同的浏览器选项卡中打开它,只要容器是公共的。 现在我正在使我的容器私有..我希望有一个简单的API可以给我SAS URL 有没有这样的API?

  • 问题内容: 如何在C或C ++代码中以编程方式设置一个断点,该断点将在Linux上适用于gdb? 即: 问题答案: 一种方法是发出中断信号: 在C中: 更新 :MSDN指出 Windows并不真正支持,因此,如果考虑到可移植性,最好使用。