【问题标题】:Why does ltrace show so many parameters and arguments?为什么 ltrace 显示这么多参数和参数?
【发布时间】:2018-01-04 20:59:55
【问题描述】:

似乎 ltrace 显示的参数比函数提供的参数多,例如 this

getauxval(31, 0x7ffe5ee5a5c0, 0, 0x7066732e6d657473) = 0x7f4f747cd030

为什么那里有4个参数,两个整数两个内存位置rather than one parameter似乎都是Linux的getauxval支持?读取 ltrace 输出的正确方法是什么?

【问题讨论】:

  • 相关:How does ltrace() display rand()。 ltrace 从附带的各种.conf 文件中获取有关库函数参数的信息,但它们并不包括每个库函数。如果在任何.conf 文件中都找不到函数,ltrace 会显示四个参数。

标签: ltrace


【解决方案1】:

我偶然发现了同样的问题。经过一番研究和与源文件的比较,我发现这些参数是函数调用时堆栈变量的值。因此,如果您希望(知道)您的函数只有一个参数,这将是第一个参数,之后的所有内容都是函数堆栈上的变量

【讨论】:

    猜你喜欢
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    相关资源
    最近更新 更多