системный вызов fork () заблокирован, приложение зависло / не отвечает - PullRequest
0 голосов
/ 21 ноября 2018

Я разработал простую тестовую программу (которая разветвляет отладочное сообщение дочернего процесса и дочерних журналов, и то же самое относится и к родительскому).программа использует AUTOSAR dlt для регистрации сообщений отладки.

Когда вышеуказанная программа скомпилирована для целевой среды сборки, скажем, Target 1, и выполнена, программа зависает / не отвечает.При отладке проблемы кажется, что системный вызов fork () заблокирован (не возвращен).я не могу понять, что пошло не так, ниже приведен след трассировки

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

Кажется, что clone () не вызывается из ядра Linux для порождения дочернего процесса. Может ли кто-нибудь подсказать мне об этом ??

, но когда тот же пример программы не связан с общей библиотекой (autosar dlt), дочерний процесс разветвляется и успешно завершается.

та же самая программа-пример вместе с общей библиотекой dlt была выполнена в другой целевой среде, программа была выполнена и завершена, как и ожидалось.

...