6

Cプログラムのシンボルテーブルを取得する方法を探しています。グローバル変数とローカル変数、およびそれらのスコープなどを探しています。

clangには、この情報をダンプするためのオプションまたはAPIがありますか?または、これを簡単に実行できるその他のコンパイラフレームワーク。

4

1 に答える 1

1

Clangには、シンボルテーブル情報へのアクセスを提供する一連のインターフェイスがあると確信しています。私の理解では、ドキュメントはそれほど多くないので、ソースコードを調べるだけです。

GCCXMLは、トップレベルの定義に対してこれを行います。関数の内容については報告しません(たとえば、ローカルを取得する可能性は低いです)。XMLを取得し、その後は自分で作業します。

DMS Software Reengineering Toolkitには、さまざまなC方言用の完全なパーサーがあり、シンボルテーブルを作成します。それらをダンプしたい場合は、[十分に文書化されたIMHO]シンボルテーブルAPIを使用すると、メンバーを簡単に列挙できます。通常、人々は、コードの生成や変更など、そのような情報を使って何かをしたいと思っています。DMSは、より高度な分析(そのシンボルテーブル構造を含む、またはその構造によって駆動される)の実行をサポートしたり、コードを変更したりするための広大なインフラストラクチャを提供します。

于 2013-02-09T21:53:04.423 に答える