在segfault之后会发生什么?

时间:2013-09-12 14:58:10

标签: c++ operating-system segmentation-fault

我有关于segfaulting的基本问题。以下伪代码更好地解释了我的问题。我有一个指向外部api的指针,在运行它时会发生段错误。我的问题接下来会发生什么指针api指向的内存是否会被删除?在segfault发生后OS会做什么?

int main () { 
    XAPI* api = new XAPI();

    // Assume: there is a segfault while in run()
    // What happens after segfault
    // does `delete api;` get executed?

    api->run();

    delete api;

    return 0;

}

1 个答案:

答案 0 :(得分:1)

SIGSEGV的默认处理是终止并生成核心转储。该进程被终止并释放其相关资源。

除非程序处理信号,否则不会执行以下代码。

有关详细信息,请参阅signal(7)手册页。