ein Programm wie dieses gegeben drucken:die dynamischen Funktionsnamen in LLVM
int gcd(para) {...}
int main() {
...
int a = gcd(para1);
int b = gcd(para2);
return 1;
}
ich den Code zum Instrument wollen und die Funktionsnamen drucken, die in der Reihenfolge ausgeführt werden: das heißt main(), gcd() , gcd().
Das Problem ist, ich weiß nicht, wie Sie den Funktionsnamen als Argument an die Hilfsfunktion übergeben.
ich folgendes geschrieben: Für Hilfsfunktion: Ich benutze: void printDynamicFuncName(char* FName) {}
Für Pass: Ich benutze:
Type* Int8 = Type::getInt8PtrTy(context);
Function *CalleeF = cast<Function>(F.getParent()->getOrInsertFunction("_Z20printDynamicFuncNamePc", Void, Int8, NULL));
Constant* arg = ConstantDataArray::getString(context, F.getName());
Builder.CreateCall(CalleeF, arg);