C 構造として記述されているバイナリ ファイル形式 (またはパケット形式) を使用している場合、その構造を解析して、プロトコルに関する適切なドキュメントに変換するプログラムはありますか?
もちろん、構造体には、フォーマットを記述する必要に応じて、配列やその他の構造体などが含まれます。ドキュメントには、おそらくパッキング、エンディアンなどを含める必要があります。
C 構造として記述されているバイナリ ファイル形式 (またはパケット形式) を使用している場合、その構造を解析して、プロトコルに関する適切なドキュメントに変換するプログラムはありますか?
もちろん、構造体には、フォーマットを記述する必要に応じて、配列やその他の構造体などが含まれます。ドキュメントには、おそらくパッキング、エンディアンなどを含める必要があります。
これは別の方法で考えたほうがいいかもしれません。
「C 構造体を生成できるパケットのドキュメント形式を作成できますか?」
たとえば、XML を使用してパケット構造を定義し、コメントなどの要素を追加することを検討してください。それを実際の C 構造に変換する単純なプログラムを作成するのはかなり簡単です。
Doxygenは、一般的に使用されているドキュメントジェネレーターです。ただし、有用なドキュメントを入手したい場合は、構造定義をドキュメント コメントでマークアップする必要があります。
perl を知っているなら、Jeeves で遊んでみることができます:
https://www.rodhughes.com/perl/advprog/examples/Jeeves/
(このソースはそこにあります。使用しても大丈夫だと思います。;))
私はあなたが必要としているものに似たもの、つまり構造化されたバイナリ データのパーサーを作成しようとしています。私は Jeeves がメタ形式から C++ で解析クラスを出力することを期待しています。Jeeves のデフォルトのパーサーでは、クラス定義の各メンバーにタグを追加できます。これにより、エンディアンやアラインメントなどに関する情報をクラス内のコメントに自動的に含めることができます (もちろん、それらをコードに実装することもできます)。