Программа для документирования структуры C? - PullRequest
2 голосов
/ 16 декабря 2008

Если у вас есть двоичный формат файла (или формат пакета), который описывается как структура C, существуют ли программы, которые проанализируют структуру и превратят ее в аккуратную документацию по вашему протоколу?

Структура, конечно, будет содержать массивы, другие структуры и т. Д., Необходимые для описания формата. Документация, вероятно, должна включать такие вещи, как упаковка, порядковый номер и т. Д.

Ответы [ 5 ]

5 голосов
/ 16 декабря 2008

Может быть, вы должны думать об этом по-другому.

"Могу ли я создать формат документации для своего пакета, для которого я могу сгенерировать структуру C?"

Рассмотрим, например, использование XML для определения структуры пакета и добавления элементов для комментариев и так далее. Было бы довольно легко написать простую программу, которая превратила бы ее в реальную структуру C

2 голосов
/ 16 декабря 2008

Doxygen является широко используемым doc umentation gen erator. Однако, если вы хотите получить полезную документацию, вам, вероятно, придется пометить определения структуры комментариями к документу.

1 голос
/ 16 декабря 2008

Если вы знаете Perl, вы можете попробовать поиграть с Дживсом:

https://www.rodhughes.com/perl/advprog/examples/Jeeves/

(Этот источник есть; я предполагаю, что все в порядке.;))

Я пытаюсь найти что-то похожее на то, что вам нужно: парсер структурированных двоичных данных. Я смотрю на Дживса для вывода классов синтаксического анализа в C ++ из мета-формата. Парсер по умолчанию для Jeeves позволяет добавлять дополнительные теги к каждому члену определения класса. Это позволит вам автоматически включать информацию о порядке байтов, выравнивании и т. Д. В комментарии в ваших классах (и, конечно же, внедрять их в ваш код).

0 голосов
/ 16 декабря 2008

Конечно, если бы такая вещь существовала, она использовалась бы для написания протокольных диссекторов для WireShark - тот факт, что каждый диссектор реализован в коде C, подразумевает, что трудно выразить двоичные форматы общим способом

0 голосов
/ 16 декабря 2008

, как говорит JaredPar, альтернативная формулировка этого вопроса:

"Что такое хороший метод для описания бинарных структур?

например. что-то вроде ABNF , но может выполнять упаковку битов, порядковый номер и т. д.

желательно, чтобы существовали инструменты для генерации не только документации, но и заголовков C, распаковки или struct шаблонов и инструментов проверки на основе описания "

...