我有一个包含2个帖子的程序。
在这种情况下,Thread1完成ioctl调用的执行还是在执行内核代码之间停止了线程?
如果可能的话,请在Windows,linux和android上下文中提供答案(调试器附加到使用ptrace创建墓碑的过程中)。
答案 0 :(得分:1)
Linux的答案:我假设该过程将作为处理SIGSEGV的线程2的一部分而终止。在Linux中,线程在内核模式下通常不能正常终止,尽管系统调用代码可能(例如,如果它处于所谓的可中断等待中)通知进程终止并提前退出。线程1一旦返回就会终止。
从开发的角度来看,我并不熟悉Android,但我的理解是,进程为许多信号设置了处理程序,这些信号唤醒了调试器守护程序,后者依次附加到使用ptrace处理信号的进程并转储各种过程状态的位。我希望在线程1从系统调用返回之前能够发生这种情况。