gpt4 book ai didi

mysql - dtrace: 编译脚本探测描述失败 pid29441::*Slave_open_temp_tables*:return 不匹配任何探测器?

转载 作者:行者123 更新时间:2023-11-30 23:16:31 26 4
gpt4 key购买 nike

由于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-l 选项会告诉你有哪些可用的探测,你应该能够弄清楚你做错了什么。

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

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

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

关于mysql - dtrace: 编译脚本探测描述失败 pid29441::*Slave_open_temp_tables*:return 不匹配任何探测器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com