Tôi muốn lấy các đối số được truyền cho một hàm. ví dụ: nếu tôi có cuộc gọiĐối số in của một hàm sử dụng Clang AST
printf ("% d% d", i, j);
sản lượng nên được
% d% d
i
j
tôi có thể để có được chức năng cuộc gọi sử dụng VisitCallExpr() trong RecursiveASTVisitor. Cũng có thể nhận được số lượng các đối số và các loại đối số. Nhưng tôi không biết làm thế nào để có được các đối số.
bool MyRecursiveASTVisitor::VisitCallExpr (clang::CallExpr *E)
{
for(int i=0, j=E->getNumArgs(); i<j; i++)
{
llvm::errs() << "argType: " << E->getArg(i)->getType().getAsString() << "\n";
}
return true;
}
Output:
argType: char *
argType: int
argType: int
Xin hãy giúp tôi nhận các đối số.
Hi martins, câu trả lời của bạn là martins rất hữu ích. Tôi không biết về hàm printPretty (...). Bây giờ, tôi có thể in các đối số. Cảm ơn bạn. –