【问题标题】:DTrace for Linux ustack() invalid address in actionDTrace for Linux ustack() 操作中的无效地址
【发布时间】:2013-03-28 08:03:03
【问题描述】:

当我使用 DTrace for Linux 运行以下 .d 脚本时:

#!/usr/sbin/dtrace -s
syscall::open:entry
{
    @[ustack()] = count();
}

我收到许多以下类型的错误:

dtrace: error on enabled probe ID 2 (ID 320864: syscall:x64:open:entry): invalid address (0xfffd) in action #2
dtrace: error on enabled probe ID 2 (ID 320864: syscall:x64:open:entry): invalid address (0xfffd) in action #2
dtrace: error on enabled probe ID 2 (ID 320864: syscall:x64:open:entry): invalid address (0xfffd) in action #2

我应该怎么做才能修复它们?

【问题讨论】:

    标签: linux dtrace


    【解决方案1】:

    您应该尝试更高版本的 dtrace。我相信这已经解决了——由于编译器、发行版和 32 位与 64 位内核的不稳定,堆栈遍历代码必须不断被重写。

    【讨论】:

    • 谢谢,我同时切换到 Systemtap。我花了很长时间才正确设置,但现在可以正常工作了。
    • 我仍然收到最新 dtrace4linux 的错误。是否有一些已知可以工作的特定编译器/发行版/内核组合?
    • 我在 ubuntu 上也遇到了与 master 构建相同的错误。如何提供更多信息来查明错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2014-08-15
    相关资源
    最近更新 更多