fork()系统调用被阻止,应用程序挂断/无响应

时间:2018-11-21 10:47:46

标签: linux-kernel fork strace

我开发了一个简单的测试程序(派生一个子进程和子日志调试消息,对父进程也是如此)。 该程序使用AUTOSAR dlt记录调试消息。

将以上程序编译为目标构建环境(例如目标1)并执行后,该程序将挂起/无响应。 在调试问题时,似乎fork()系统调用被阻止(未返回)。 我无法理解出了什么问题,下面是strack跟踪

mprotect(0xffffb15b7000, 4096, PROT_READ) = 0
munmap(0xffffb27cc000, 17638)           = 0
getpid()                                = 27338
tgkill(27338, 27339, SIGRTMIN)          = 0
getpid()                                = 27338
tgkill(27338, 27340, SIGRTMIN)          = 0
futex(0xffffb25ba2c0, FUTEX_WAIT, 27339, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) < -- next call should be clone(), but not called

似乎没有从Linux内核调用clone()来生成子进程。 有人可以指导我吗?

但是当相同的示例程序与共享库(autosar dlt)取消链接时,子进程将被派生并成功完成。

同一示例程序以及链接的共享dlt库是在不同的目标环境上执行的,该程序已按预期执行和完成。

0 个答案:

没有答案