段错误后会发生什么
What happens after segfault?
我有一个关于段错误的基本问题。下面的伪代码更好地解释了我的问题。我有一个指向外部 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) 手册页。
相关文章:
- 警告处理为错误这里有什么问题
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 0-1背包代码中的错误.我的代码中有什么错误
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如果我这样写,我的单例类会导致什么错误
- 为什么输出不同以及此代码中有什么错误
- 我的代码中有什么错误.我尝试在类中使用数组,但出现逻辑错误
- 使用 fopen 而不是 Visual Studio 建议的 fopen_s 有什么错误
- 我的 C++11 测试表明 sort(vector<string>) 甚至比 C++03 慢,有什么错误吗?
- 这个 c++ 结构有什么错误
- 什么错误的逻辑导致我的链表的这个 push_back(..) 函数失败?
- 我的类定义中有什么错误?
- realloc C 函数的可能包装函数有什么错误?
- 什么错误无法理解
- C++:使用STL矢量时有什么错误
- 下面的代码中有什么错误,应该如何更正
- 我错过了什么?c++错误
- 这里面有什么错误?字符串赋值
- 如果将此函数放在泛型库中,会导致什么错误?
- 我做错了什么? c++错误