Как отследить граф вызовов программы на C с косвенными вызовами функций? - PullRequest
0 голосов
/ 20 февраля 2019

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

Прошивка работает посредством косвенных вызовов функций и событий.Всякий раз, когда происходит событие (например, прерывание или сообщение, отправленное в очередь другим модулем), обработчик события публикует сообщение в очереди.Сообщение содержит указатель функции на фактический обработчик для этого события и другие соответствующие данные для запуска обработчика.Обработчик событий может снова вызывать другие события, используя механизм, описанный выше.

Основной код просто проверяет события в связанных очередях и выполняет их (путем запуска косвенных вызовов функций).Существуют разные очереди только для обработки событий с различным приоритетом.

Как лучше понять и проанализировать этот код?Мне нужно понимать этот код, чтобы добавлять новые функции и исправлять существующие ошибки.

Есть ли способ генерировать граф вызовов программы в этом сценарии?Код написан на C.

Как лучше всего документировать поведение этой прошивки?

...