-1

公式プロジェクト コードのフローをデバッグするのにうんざりしています。複数のファイルと何百万、何千もの行にまたがっています。したがって、目的が add printf( , FILE , LINE );であるファイルから入力ファイル名を取得する C++ プログラムの作成を開始しました。- 次のような各 C++ ステートメントの後の追加のデバッグ ステートメント:

void my_func()
{
call_other();
}
in file 1.cpp at line 1

なるだろう

void my_func()
{
call_other();
printf("call_other() 1.cpp 1")
}

そのため、各ファイル コードが解析され、この余分なデバッグ ステートメントが追加されます。

しかし、問題はさまざまなタイプのステートメントで発生します。

if(condition) statement else statement;
C++ templates
switch case
etc

次のような従うべき文法を確立することができません。

行がセミコロンで終わり、次のトークンが「{」でない場合は、このデバッグ行を追加します。

私が考えているよりも多くのケースがあると思います。何百万ものコード行に蓄積される何千ものファイルに同じものを実装する前に、考慮すべき提案はありますか?

すでに活用できるツール/既知の手法はありますか?

4

1 に答える 1

0

どうしてもこれを行う必要がある場合は、clangを見て、ASTレベルで動作するソース間トランスレーターを作成してください。ネット上には、これを始めるためのさまざまな投稿があります。一例:http ://eli.thegreenplace.net/2012/06/08/basic-source-to-source-transformation-with-clang/

于 2012-06-12T13:59:59.780 に答える