私はパス プロファイリング ツールを作成しており、jdt Astparser を使用してソース コードを変更しています。元の各行の後にいくつかのコードを追加し、それらをアトミック操作にして、ソース コードの動作を変更しない場合。このように:元のソースコード:
int a = 0;
int b = 0;
a = b;
操作後
synchronized (lock) {
int a = 0; //original code
//my code
//....
//end
}
synchronized (lock) {
int b = 0; //original code
//my code
//....
//end
}
synchronized (lock) {
a = b; //original code
//my code
//....
//end
}
ただし、変数のスコープが変更され、変数 a と b がグローバルではなくなり、コードをコンパイルできなくなります。
その後に挿入した変数宣言とコードを組み合わせて、アトミック操作にし、変数スコープを変更しないようにする方法はありますか?
...そして私の英語でごめんなさい:)