2

私は、メモリアクセスパターンをモデル化するために、特定のアプリケーションコードの特定の変数セットへの変更を追跡する必要があるプロジェクトに取り組んでいます。

主に2つのアプローチが考えられますが、それらについて考えてみてください。

  1. 私の最初の考えは、gprofのような多くのプロファイラーと同じように行うことです。ここでは、コンパイル前にターゲットアプリケーションコードにインストルメンテーションコードを追加し、このインストルメンテーションコードによって生成されたログを分析して必要な情報を取得します。

達成するために、私はある種のソースツーソースコンパイラを考えることができます。そこでは、与えられたコードを解析し、インストルメンテーションコード(同じ言語のソースソースコンパイラ)をアプリケーションに挿入します。後でコンパイルして実行し、必要なログを取得できます。

これは正しいように見えますか、それとも私は過剰設計ですか?そうでない場合、ソース-ソースコンパイラを(比較的)簡単に構築できるツールはありますか?

  1. GDBのPythonのサポートについて読んだので、変数のセットを構成ファイルとして取得し、監視対象の変数への書き込みがあるたびに監視ポイントとログを記録するPythonスクリプトを記述できるかどうかを考えています。このGDB機能を使おうとしましたが、Ubuntuマシンでは今のところ機能していないようです。 http://sourceware.org/gdb/onlinedocs/gdb/Python.html#Python

そして、アプリケーションの言語はnesCになります(nesCはコンパイルの過程でCに変換されると思います)(そしてアプリケーションは私のコンピューターのネイティブアプリのようにTOSSIMで実行されます)。

4

1 に答える 1

2

プログラム変換システム (PTS) を使用したコードの計測に関する私の論文を参照してください (PTS は非常に一般的な種類の「ソースからソースへのコンパイラー」です)。

関心のある言語の文法を理解したら、非常に簡単な方法でプローブをコードにインストールする方法を示します。基礎となるツールである DMS を使用すると、文法も簡単に定義できます。

于 2013-02-21T10:55:52.740 に答える