我是systemtap的新手,想了解如何使用应用程序中的调试信息动态地将检测附加到生产应用程序。
对于目标应用程序(示例apache webserver)。我想找到执行给定函数所花费的时间。即我想使用函数的符号信息找到从函数开始到结束所花费的时间。如何使用systemtap执行此操作 - 您能否提供以下说明:
特别是我想了解如何使用基于Debuginfo的工具进行用户空间跟踪。
以下是“基于Debuginfo的信息”的参考资料 - https://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToApps
答案 0 :(得分:2)
列出功能:
stap -L 'process("/usr/sbin/httpd").function("*").call'
函数调用率的基本计数:
stap /usr/share/doc/systemtap*/examples/*/eventcount.stp \
'process("/usr/sbin/httpd").function("*").call'
计时功能:
stap -e 'probe process("/usr/sbin/httpd").function("ap_getword_conf").return {
printf("%s %d\n", ppfunc(), gettimeofday_us()-@entry(gettimeofday_us()))
}'