私は、関数の開始と開始にコードを自動的に追加する方法を探しています。アイデアは、後で実行コードをプロファイルしたいということです。たとえば、私は、機能を持っている:idは一意に私は私のマクロを使用するたびに与えられているcの関数の開始と終了に固有のコードを追加
void helloWorld(){
printf("Function id 1 enter");
printf("Hello World!\n");
printf("Function id 1 exit");
}
void worldHello(){
printf("Function id 2 enter");
printf("World hello!\n");
printf("Function id 2 exit");
}
:
void helloWorld(){
printf("Hello World!\n");
}
void worldHello(){
printf("World hello!\n");
}
私はそれらを展開されるマクロのいくつかの種類を持っていると思います。 anyoenは私がこれをどのように達成できるかについて何か良いアイデアを持っていますか?私はGCCの "__COUNTER__"を見ましたが、実際には私が望んでいたように動作しませんでした。
あなたはまだgprofのに見たことが呼ばれているのですか? –
関数の宣言をコードを自動的に追加するマクロ魔法に置き換えるなど、言語の基本をあまりにも酷使することは、短期間では良いアイデアのように見えるかもしれません。しかし、人々(あなた自身を含む)はあなたにそれを長期間憎むでしょう。 ;-)ここでDaveとDownvoterをSecondingし、既存のソリューションを見てみましょう。 – DevSolar
いいえ、それについて知りませんでしたが、私はマイクロプロセッサ上で自分のコードを実行しています。私は、GPIOピンを使ってイネーブルされた関数のIDを設定し、別のハードウェア上で出力を読み込み、解析することを試みています。私は非常に厳しいタイミングがあり、私が通常使うプリントアウトの方法は使えません。 – Kristoffer