Я отслеживаю процесс с помощью strace
/ ltrace
в надежде найти и перехватить вызов, который проверяет и потенциально активирует какую-то глобальную общую блокировку.
Несмотря на то, что я уже имел дело с несколькими формами межпроцессорной блокировки в Linux и читал о них ранее, я рисую бланк о том, что нужно искать в вызовах.
В настоящее время мой единственный подозреваемый - futex()
, который появляется очень рано в процессе выполнения.
Update0
Есть некоторая путаница по поводу того, что я преследую. Я отслеживаю существующий процесс для вызовов постоянной межпроцессной памяти или эквивалентного . Я хотел бы знать, какие системные и библиотечные вызовы нужно искать. Я не собираюсь вызывать их сам, поэтому, естественно, появится futex()
, я уверен, что многие библиотеки будут реализовывать свои вызовы блокировки с точки зрения этого и т. Д.
Update1
Я хотел бы получить список имен функций или ссылку на документацию, которую я должен отслеживать на уровнях ltrace
и strace
(и указать, какие именно). Любой другой полезный совет о том, как отследить и определить местонахождение глобальной блокировки, был бы полезен.