我遇到程序中的错误导致整个过程终止,而我通过我的程序调试并按照Task Manager
我可以看到我的进程在运行某个线程时终止。
我介绍了这个帖子,显然我使用exit()
导致了这个问题。我改为pthread_exit()
但我又遇到了同样的问题,结果是特定的线程也有非法操作:division by zero
。
何时会导致进程终止?
答案 0 :(得分:1)
| | thread | process |
-----------------------------------------------------------------
| pthread_exit | finish | finish iff last running thread |
| pthread_cancel | finish | finish iff last running thread |
| exit() | finish | finish |
| Illegal operation | finish | finish |
| thread finishes | finish | finish iff last running thread |
| main thread finishes| finish | finish |
return
是一个包含exit
sys_call
的包装函数,这也是整个线程终止的原因。
CPUs
倾向于抛出异常中断,
在除以零或取消引用空指针之类的事情上。导致程序执行暂停并将控制权返回给操作系统以处理事件。该程序可能会被终止,
根据操作系统释放所有资源。