首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SystemTap跟踪mysqld

使用SystemTap跟踪mysqld
EN

Stack Overflow用户
提问于 2013-08-12 11:21:36
回答 1查看 602关注 0票数 2

我想使用系统访问来跟踪MySQL。

问题是,在配置和构建MySQL并启动服务器之后,我无法获得服务器中存在的标记信息:

[root@localhost]$ stap -l 'process("/home/mysql/mysql5.5.33/bin/mysqld").mark("*")'

[root@localhost]$ (无输出)

我的env如下:

代码语言:javascript
复制
1 stap version
$ stap --version
Systemtap translator/driver (version 1.7/0.152 non-git sources)
Copyright (C) 2005-2012 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
enabled features: AVAHI LIBRPM LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS

2我使用脚本配置MySQL如下:

代码语言:javascript
复制
cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql/mysql5.6.12 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_DTRACE=1 \
-DWITH_DEBUG=1 \

顺便说一句:我可以得到函数输出。

[root@localhost] stap -L 'process("/home/mysql/mysql5.6.12/bin/mysqld").function("main")'

process("/home/mysql/mysql5.6.12/bin/mysqld").function("main@/home/mysql/mysql-5.6.12/sql/main.cc:23") $argc:int $argv:char**

-n /home/mysql/mysql5.6.12/bin/mysqld

“在偏移号0x0000021c,长度为0x00000020的备注:

所有者数据大小描述

GNU 0x00000010 NT_GNU_ABI_TAG (ABI版本标签)

注号为0x0000023c,长度为0x00000024:

所有者数据大小描述

GNU0x00000014 NT_GNU_BUILD_ID (唯一生成ID位串)

EN

回答 1

Stack Overflow用户

发布于 2013-08-16 03:30:57

看来,mysql的-DENABLED_DTRACE=1位不足以在sys/sdt.h工具中实际编译。如果他们这样做了,你会看到额外的数据在自己。您可以尝试查看mysql构建树中的各个.o文件。例如,Fedora 19的mariadb-服务器包确实有标记:

代码语言:javascript
复制
% stap -L 'process("/usr/libexec/mysqld").mark("*")'
process("/usr/libexec/mysqld").mark("command__done") $arg1:long
...54 lines omitted...
process("/usr/libexec/mysqld").mark("update__start") $arg1:long

在那里,它配置了-DENABLE_DTRACE=ON。也许你的只是一个-DENABLED_DTRACE和-DENABLE_DTRACE的错误?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18185688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档