为什么在 Solaris 上生成的调用堆栈中的函数总是显示 6 个参数?

发布于 2024-09-16 09:44:15 字数 151 浏览 8 评论 0原文

为什么 Solaris 中生成的调用堆栈中显示的函数总是包含 6 个参数?

在大多数情况下,原始函数根本不会有 6 个参数。有时我还发现,显示的参数值与函数声明中的顺序不匹配。

任何用于理解这些概念和在 Solaris 中进行调试的指针或链接都会有所帮助。

Why do the functions displayed in a callstack generated in Solaris always contain 6 parameters?

In most of the cases, the original function will not be having 6 parameters at all. Sometimes I also find, the parameter values displayed are not matching the order in function declaration.

Any pointers or links for understanding these concepts and debugging in Solaris will be helpful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮色兮凉城 2024-09-23 09:44:16

我相信,根据您的 Solaris 版本(64 位?),调用约定指定由寄存器传递的函数的前 6 个参数。即使它们没有被使用,您的调试器也可能只显示这 6 个寄存器的内容。

编辑:来自 http://publib.boulder.ibm.com/httpserv /ihsdiag/get_backtrace.html#pstack

Note that pstack doesn't know how many arguments there are so it always displays six. So if you know that some function has only two arguments, ignore whatever pstack displays after the first argument.

I believe, depending on your version of Solaris (64 bit?), that the calling convention specifies the first 6 parameters of a function be passed by registers. Even if they're not being used, your debugger may just be showing the contents of these 6 registers.

Edit: from http://publib.boulder.ibm.com/httpserv/ihsdiag/get_backtrace.html#pstack

Note that pstack doesn't know how many arguments there are so it always displays six. So if you know that some function has only two arguments, ignore whatever pstack displays after the first argument.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文