Существует ли инструмент статического анализа для вычисления цепочек определения использования? - PullRequest
3 голосов
/ 04 июня 2011

Я ищу инструмент статического анализа для C, который выполняет анализ потока данных и вычисляет цепочки определения использования (предпочтительно инструмент командной строки). До сих пор я пробовал CIL, clang, lint, goanna и несколько других инструментов статического анализа, но ни один из них не вычисляет цепочки определения использования. Я также предпочитаю не работать на уровне IR (например, LLVM), но если IR не слишком сложен, это может быть хорошо. Есть ли инструмент, который удовлетворяет моим требованиям?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 04 июня 2011

Платформа Frama-C имеет плагины, которые вычисляют def / use и могут использоваться в пакетном режиме из командной строки.

2 голосов
/ 04 июня 2011

Наш Комплект реинжиниринга программного обеспечения DMS с C Front End может обеспечить это.

DMS предоставляет базовое оборудование для анализа и анализа потока;внешний интерфейс C предоставляет DMS подробные сведения о языке C, в том числе о том, где происходят потоки данных.Цепочки def-use предоставляются в виде связей между узлами AST, представляющими назначения, и узлами AST, представляющими приемники.Рассматриваемые переменные можно легко найти в таблице символов.

См. Обсуждение различных типов потоков, извлекаемых DMS.

0 голосов
/ 07 апреля 2013

Cil может сделать это, если вы прочитали код ядра, так как usedef.ml и reachDef.ml могут помочь.

...