我想使用systemtap来跟踪MySQL。
问题是,在配置和建立后MySQL和我启动服务器,我不能让这些标记信息存在于服务器:
跟踪mysqld使用SystemTap
[[email protected]]$ stap -l 'process("/home/mysql/mysql5.5.33/bin/mysqld").mark("*")'
[[email protected]]$
(无输出中)
我ENV如下:
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的脚本如下:
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 \
BTW:我可以得到函数的输出
[[email protected]] stap -L 'process("/home/mysql/mysql5.6.12/bin/mysqld").function("main")'
process("/home/mysql/mysql5.6.12/bin/mysqld").function("[email protected]/home/mysql/mysql-5.6.12/sql/main.cc:23") $argc:int $argv:char**
readelf -n /home/mysql/mysql5.6.12/bin/mysqld
`在长度为0x00000020偏移0x0000021c注意事项:
所有者数据大小说明
GNU 0x00000010 NT_GNU_ABI_TAG(ABI版本标记)
注意到长度0x00000024:
所有者数据大小说明
GNU 0x00000014 NT_GNU_BUILD_ID(独特构建标识位串)`
“readelf -n /home/mysql/mysql5.6.12/bin/mysqld”是否包含一些NT_STAPSDT位? – fche
readelf -n /home/mysql/mysql5.6.12/bin/mysqld在偏移0x0000021c 注意到长度0x00000020: 所有者数据大小说明 GNU 0x00000010 NT_GNU_ABI_TAG(ABI版本标记)在偏移0x0000023c 注意到长度0x00000024: 所有者数据大小说明 GNU 0x00000014 NT_GNU_BUILD_ID(唯一构建ID位串)' – orain