我没有源代码,但有二进制文件。使用命令“nm binary_name”我可以知道二进制文件中的函数。
我能知道一个函数有多少个参数吗?在 solaris 下,有没有办法做到这一点?
例如,如果函数是:func1(a int,b int,c int),那么有 3 个参数。
谢谢 丹尼尔
最佳答案
没有。 Neil Butterworth 检查函数签名的建议对 C++ 来说是一个很好的建议(因为参数通常被编码到函数中,因此链接器可以区分 "int x(int)"
和 例如“int x(float)”
)但是,对于 C,您将不得不亲自动手并反汇编函数,特别注意堆栈帧在您的环境中是如何构建和使用的.
请记住,SPARC 有一个旋转的窗口堆栈,而不是常规的向下增长堆栈。您真的要深入研究 CPU 的工作方式。如果您谈论的是英特尔的 Solaris,那么旋转堆栈当然不存在。
关于linux - 对于没有源代码的二进制函数,有没有办法获得参数的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1266187/