【问题标题】:dtrace: failed to compile script probe description pid29441::*Slave_open_temp_tables*:return does not match any probes?dtrace:无法编译脚本探针描述 pid29441::*Slave_open_temp_tables*:return 不匹配任何探针?
【发布时间】:2013-07-02 06:03:26
【问题描述】:

由于this 的问题,我将使用dtrace 来了解从SQL 线程对临时表的操作,请遵循this 指南。

这是我的脚本:

#!/usr/sbin/dtrace -s

#pragma D option quiet
dtrace:::BEGIN
{
    printf("Tracing... Hit Ctrl-C to end.\n");
}

pid$target::*mysql_parse*:entry
{
    self->query = copyinstr(arg1);
}

pid$target::*Slave_open_temp_tables*:return
{
    @query[self->query] = count();
}

这是我跑步时得到的:

# ./Slave_open_temp_tables.d -p `pgrep -x mysqld`
proc-stub:rd_event_enable
proc-stub:rd_errstr err=26
dtrace: failed to compile script ./Slave_open_temp_tables.d: line 14: probe description pid29441::*Slave_open_temp_tables*:return does not match any probes
User defined signal 1

我也尝试过create_myisam_tmp_table,但得到了相同的结果。

我哪里做错了?

【问题讨论】:

    标签: mysql dtrace


    【解决方案1】:

    我没有安装 MySQL 来寻找你,但 dtrace-l 选项会告诉你有哪些可用的探测器,你应该能够从中找出你做错了什么。

    $ dtrace -ln 'pid$target::*Slave_open_temp_tables*:return' -p `pgrep -x mysqld`
    

    或者尝试使用不那么具体的名称,例如 *open_temp_tables**tables* 甚至 * 以获得更广泛的结果...这可能是由于您的目标进程中不再存在该函数MySQL源代码的变化。

    另外,我假设您已经检查了 pgrep -x mysqld 的输出以确保它是有效的输入 pid?

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多