linux - 对于没有源代码的二进制函数,有没有办法获得参数的数量

标签 linux solaris

我没有源代码,但有二进制文件。使用命令“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/

相关文章:

c - 绑定(bind)到 INADDR_LOOPBACK 时为 "Cannot assign requested address",但 INADDR_ANY 有效

linux - perl + 匹配文件中的最后一个单词 + 一行 perl 命令

c++ time() 函数在 solaris 中的性能

linux - 查找包含特定文本的路径

linux - udp 从驱动程序发送

python - 名称错误 : name 'freenect' is not defined

python - os.chdir 工作一次,第二次调用后不工作; python 脚本

c# - 检测远程计算机是 Windows 还是 Linux 操作系统

linux - linux 上的脚本 shell 和 solaris 上的脚本 shell 之间的区别

c - 终止长时间运行的进程