これを使用して、プログラムの呼び出された関数の名前を出力する必要があります。gcc plugins
後で呼び出されるパスを作成しましたssa pass
。すでにプラグインを開始しており、次を使用してそのステートメントをループできますgimple_stmt_iterator
。
int read_calls(){
unsigned i;
const_tree str, op;
basic_block bb;
gimple stmt;
tree fnt;
FOR_EACH_BB_FN(bb, cfun) {
gimple_stmt_iterator gsi;
for (gsi=gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi))
{
stmt = gsi_stmt(gsi);
if (is_gimple_call(stmt)){
const char* name = THE_FUNCTION_I_NEED(stmt);
cerr << " Function : " << name << " is called \n";
}
}
}
return 0;
}
gimpleノードを使用して、呼び出された関数の名前を出力するにはどうすればよいですか?? 呼び出された行番号、呼び出された関数の名前など、他の情報も出力できますか?