Инструментирование функций ядра Linux - PullRequest
0 голосов
/ 26 апреля 2018

Я ищу способ инструментальной функции в ядре Linux. Кажется, что флаг -finstrument-functions в GCC допускает инструментирование, но есть ли способ инструментировать только определенную функцию Linux, используя директивы компилятора (т.е. атрибуты функции) вместо инструментирования всех функций?

Похоже, что KProbe также имеет функциональные возможности инструментовки, но KProbe поддерживает черный список функций и не позволяет отслеживать эти функции, что приводит к ограниченному объему инструментов.

Я использую Ubuntu-16.04 с версией ядра 4.8.11 на x86_64.

Цель контрольно-измерительных приборов состоит в том, чтобы контролировать вход и выход целевой функции, устанавливая и снимая флажок.

1 Ответ

0 голосов
/ 27 апреля 2018

Ответ - это зависит. Однако вводить его не так просто, как можно подумать.

В частности, например, вы можете использовать -finstrument-functions для конкретных файлов C, а затем использовать атрибут ((no_instrument_function)), чтобы исключить те, которые вы не хотите инструментировать

Вы должны были бы отслеживать прерывание и быстрые вызовы, вы должны были бы убедиться, что вы случайно не останавливаете или удаляете контрольно-измерительные приборы. О, вы также должны отслеживать любой случайный макет стека, который ядро ​​наносит самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...