C++ 英特尔引脚获取函数参数号

C++ 英特尔引脚获取函数参数号,c++,intel,intel-pin,C++,Intel,Intel Pin,我正在尝试使用Pin编写函数调用跟踪程序。它可以打印每个函数调用以及每个参数的值 一个困难是获取函数的所有参数。使用RTN_InsertCall,可以将函数参数传递给检测代码: 但是,您需要知道当前例程的参数数量。有办法吗 谢谢 在C中,类型信息不保存在二进制文件中 在C++中,可以尝试使用函数的已损坏名称来确定参数的类型。然而,名称混乱不是标准的,并且在不同的编译器之间通常是不兼容的。显然,这里没有保证 另见: 您应该提供关键信息,说明您是否有相关二进制文件的调试符号。如果您确实有可用的调

我正在尝试使用Pin编写函数调用跟踪程序。它可以打印每个函数调用以及每个参数的值

一个困难是获取函数的所有参数。使用RTN_InsertCall,可以将函数参数传递给检测代码:

但是,您需要知道当前例程的参数数量。有办法吗


谢谢

在C中,类型信息不保存在二进制文件中

在C++中,可以尝试使用函数的已损坏名称来确定参数的类型。然而,名称混乱不是标准的,并且在不同的编译器之间通常是不兼容的。显然,这里没有保证

另见:


您应该提供关键信息,说明您是否有相关二进制文件的调试符号。如果您确实有可用的调试符号,那么这是轻而易举的事。有一些标准库用于解析这些


如果您没有调试符号,那么它可能会非常困难,而且使用像IDA Pro这样的可视化探索工具基本上会更好。已经有一些关于自动查找剥离二进制文件的函数签名的研究(例如),但是这个主题仍然是最前沿的,无论您使用什么工具,都会在某个时候失败,因为问题最终是无法确定的,所有工具都只是求助于启发式来重建这些信息。克里斯·伊格尔(Chris Eagle)的书()中免费提供的第12章介绍了艾达如何做到这一点。

谢谢。我希望Pin提供了一些api,可以满足我的需要。