Кто-нибудь пытался создать файл журнала межпроцессных сообщений? Может ли кто-нибудь дать мне небольшой совет о наилучшем способе достижения этого?Snoop interprocess communication
ответ
Вопрос не совсем понятно, и комментарии делают его менее ясно, но в любом случае ...
две вещи, чтобы попробовать первые являются ipcs и strace -e trace=ipc.
хорошие инструменты. Мне не ясно, как вы будете использовать ipcs. – fabrizioM
Если вы хотите зарегистрировать все IPC (кажется очень интенсивным), вы должны рассмотреть приборы.
Их много хороших инструментов для этого, проверьте PIN в перкуляте, this section руководства;
В этом примере мы покажем, как сделать более селективное приборов путем изучения инструкции. Этот инструмент генерирует трассировку всей памяти адресов, на которые ссылается программа. Это также полезно для отладки и для имитации кэша данных в процессоре .
Если вы выполняете настройку и анализ тяжелых весов, ознакомьтесь с TAU (Настройка и анализ утилиты).
Связь с драйвером ядра может принимать различные формы. Обычно для связи используется специальный файл устройства, или может быть специальный тип сокета, например NETLINK. Если вам повезет, есть устройство символов, для которого read() и write() являются единственным средством взаимодействия - если это так, то эти вызовы легко перехватывать с помощью различных методов. Если вам не повезло, многие вещи выполняются с помощью ioctls или что-то еще более сложное.
Однако запуск 'strace' в программе с использованием драйвера ядра для связи может выявить практически все, что он делает - хотя 'ltrace' может быть более читабельным, если есть библиотеки, которые программа использует для связи. Регулируя аргументы «Трассирование», вы, вероятно, можете получить дамп, который содержит только ту информацию, что вам нужно:
- Во-первых, просто глазное яблоко звонков и попытаться выяснить, средства связи ядро
- Тогда, добавить фильтры Strace звонить войти только связь ядро вызывает
- Наконец, убедитесь, что Трассирование регистрирует полные строки всех вызовов, так что вам не придется иметь дело с усеченными данными
ответы, которые указывают на Отладка IPC, вероятно, не актуальна, поскольку связь с ядро почти никогда не имеет никакого отношения к IPC (по крайней мере, не к различным средствам IPC UNIX).
Какое сообщение? TCP-сокеты? Unix-сокеты? DBUS? Общая память? – thejh
Какой IPC? – st0le
Спасибо, ребята. На самом деле я не знаю! Я хочу изменить одну карту интерфейса для другой. Я надеялся записать вызовы API на исходный драйвер и проанализировать выходные данные, чтобы понять все это, а затем перевести это на API другой карты. – Patrick