段错误后会发生什么

What happens after segfault?

本文关键字:什么 错误 段错误      更新时间:2023-10-16

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

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;
}

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

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

有关更多信息,请参见 signal(7) 手册页。