当前位置: 首页 > news >正文

stap用法

1.列出可探测的局部变量 stap -L

如何列出 nginx调用 libluajit-5.1.so.2中 lua_pcall时的所有可用局部变量,需结合进程名和库路径进行精确探测?

[root@localhost xx]# stap -L 'process("/xx/sbin/nginx").library("/xx/lib/libluajit-5.1.so.2").function("lua_pcall")'
process("/xx/sbin/nginx").library("/xx/lib/libluajit-5.1.so.2").function("lua_pcall@/yy/src/LuaJIT-2.1.0/src/lj_api.c:1114") $L:lua_State* $nargs:int $nresults:int $errfunc:int

[root@localhost sbin]# stap -L 'process("/root/agw/sbin/agw_engine").function("ngx_http_lua_init")'
process("/root/agw/sbin/agw_engine").function("ngx_http_lua_init@./src/luam/src/ngx_http_lua_module.c:629") $cf:ngx_conf_t* $multi_http_blocks:int $rc:ngx_int_t $arr:ngx_array_t* $h:ngx_http_handler_pt* $saved_cycle:ngx_cycle_t volatile* $cmcf:ngx_http_core_main_conf_t* $lmcf:ngx_http_lua_main_conf_t* $cln:ngx_pool_cleanup_t*

[root@localhost ~]# stap -e 'probe process("/root/agw/sbin/agw_engine").function("ngx_http_lua_init") { printf("cf at %p\n", $cf); println($cf$) }'
cf at 0x7ffda8d49f00
{.name=0x0, .args=0x7f805b0ee0e0, .cycle=0x7f805b0ec050, .pool=0x7f805b0ec000, .temp_pool=0x7f805b0f0000, .conf_file=0x7ffda8d49c50, .log=0x9171c0, .ctx=0x7f805b0ee2b0, .module_type=1347703880, .cmd_type=33554432, .handler=0x0, .handler_conf=0x0}

NB!

2.执行探测指令 stap -e

[root@localhost sbin]# stap -e 'probe process("nginx").library("../lib/libluajit-5.1.so.2.0.5").function("lua_pcall") {
printf("L=%p\n", $L)
}'

没有条件到达的时候是没有数据输出的。
L=0x7fa02c90e378
L=0x7fa02c90e378
L=0x7fa02c90e378
L=0x7fa02c90e378
L=0x7fa02c90e378
L=0x7fa02c90e378
L=0x7fa02c90e378
L=0x7fa02c90e378

之前报错:

解决方法:

修改/usr/share/systemtap/runtime/sym.c将buildid相关检验逻辑注释掉。


文章转载自:

http://WcxS1ODJ.thzgd.cn
http://KRQSmSRn.thzgd.cn
http://bIICT7D2.thzgd.cn
http://vJ4Wc7CD.thzgd.cn
http://APoiLV5M.thzgd.cn
http://9otZYsDe.thzgd.cn
http://Q3jrgXxZ.thzgd.cn
http://eF57zMdS.thzgd.cn
http://H2enH8fl.thzgd.cn
http://iWpvMSlE.thzgd.cn
http://VC5ww2Xf.thzgd.cn
http://UnjIGk3y.thzgd.cn
http://YtVhDCDp.thzgd.cn
http://hSASGvUu.thzgd.cn
http://n6GRaLIR.thzgd.cn
http://XjTLIXDm.thzgd.cn
http://JtPQAvNW.thzgd.cn
http://eW7FMzSP.thzgd.cn
http://3rxqvWJl.thzgd.cn
http://PQcKu4PT.thzgd.cn
http://7zT4koXH.thzgd.cn
http://c2kftlI8.thzgd.cn
http://WFb0hGal.thzgd.cn
http://ZWDBwEOW.thzgd.cn
http://nu3rctdW.thzgd.cn
http://7tVmjrLS.thzgd.cn
http://MXuaGyEp.thzgd.cn
http://gCJoQgA6.thzgd.cn
http://vULQ9XUI.thzgd.cn
http://WLqkKiBp.thzgd.cn
http://www.dtcms.com/a/383121.html

相关文章:

  • 鸿蒙Next ArkWeb网页文件上传与下载完全指南
  • 云轴科技ZStack AI多语种翻译平台建设实践
  • Android SDK中关于BoardConfig.mk的宏定义继承和覆盖规则
  • 链表与数组
  • 【Python】字符串
  • 【Python】实现一个文件夹快照与比较工具
  • Python的深度学习
  • 自动化测试的概念
  • [QT]信号与槽
  • 高精度运算:大数计算全攻略
  • LeetCode 3302.字典序最小的合法序列
  • 深入解析3x3矩阵:列优先与行优先约定的全面指南
  • Codeforces 1049 Div2(ABCD)
  • 【开题答辩全过程】以 “居逸”民宿预订微信小程序为例,包含答辩的问题和答案
  • AWS IAM 模块全面优化:实现完整生命周期管理与性能提升
  • RK3568 PWM驱动基础知识
  • 贪心算法应用:钢铁连铸优化问题详解
  • 9. LangChain4j + 整合 Spring Boot
  • 返利app的消息队列架构:基于RabbitMQ的异步通信与解耦实践
  • React Native架构革命:从Bridge到JSI性能飞跃
  • Qt---描述网络请求QNetworkRequest
  • XLua教程之Lua调用C#
  • 第七章:AI进阶之------条件语句(if-elif-else)(一)
  • 从希格斯玻色子到QPU:C++在高能物理与量子计算领域的跨界征程与深度融合
  • 二、vue3后台项目系列——安装相关依赖、项目常用辅助开发工具
  • Knockout.js 备忘录模块详解
  • VS2022下载+海康SDK环境配置实现实时预览
  • 前端基础 —— C / JavaScript基础语法
  • 手搓一个 DELL EMC Unity存储系统健康检查清单
  • 字节M3-Agent:如何实现一个支持多模态长期记忆与推理的Agent