График вызовов (зависимостей) на уровне обучения - PullRequest
2 голосов
/ 23 июля 2011

Мне было интересно.Есть ли инструмент, который я могу использовать (в программе на C), который генерирует граф вызовов на уровне инструкции в программе, принимая во внимание зависимость такой инструкции от других инструкций?Что-то вроде «графа зависимостей», но на уровне инструкций в программе.Я взял идею из главы 27 новой книги Кормена (см., Например, стр. 778), но я даже не буду пытаться взломать что-либо, если инструмент уже доступен.(Если хотите, глава 27 находится в сети здесь ).Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Любой оптимизирующий компилятор для C должен выполнять этот вид анализа потока управления.

С другой стороны, я понятия не имею, насколько легко вывести из него график (в смысле автономного инструмента)

1 голос
/ 23 июля 2011

Если вы черпаете вдохновение из рисунка 27.2 на странице 778 книги Кормена / Ривеста, это не график вызовов в обычном смысле.это дерево вызовов, в котором узлы являются экземплярами выполнения функции, а не самой функции.Это дерево вызовов конкретного выполнения программы, разработанное с информацией о переменных в каждом экземпляре и информацией о параллелизме.

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

Возможно, вам будет легче помочь, если ваша общая цель будет более ясной.

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