Я разработал простую тестовую программу (которая разветвляет отладочное сообщение дочернего процесса и дочерних журналов, и то же самое относится и к родительскому).программа использует 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 была выполнена в другой целевой среде, программа была выполнена и завершена, как и ожидалось.