linux上trace code的几种方法

我们在看代码时,总是会遇到下面问题:

1.查看某个场景下的代码执行流

2.查看某个函数被执行时的routine

但是,如果直接查看源码,源码可能代码量大,且分支多,不容易理清。就需要让相关程序运行起来查看。


1.无侵入方式(不修改源码)

BCC (linux kernel和userspace均可用)

bpftrace

Ftrace

  • function-graph tracer
  • function tracer
  • stack tracer

strace(查看系统调用)

gdb

2.侵入方式(修改源码)

  • 添加打印log
  • 打印stack - 如:linux kernel中的dump_stack()
相关推荐
晚风_END4 分钟前
Linux|操作系统|elasticdump的二进制方式部署
运维·服务器·开发语言·数据库·jenkins·数据库开发·数据库架构
嵌入小生0074 分钟前
Standard IO -- Continuation of Core Function Interfaces (Embedded Linux)
linux·vim·嵌入式·标准io·vscode
Zach_yuan6 分钟前
传输层之TCP/UDP 核心原理全解析:从协议基础到实战机制
linux·网络协议·tcp/ip·udp
独自归家的兔6 分钟前
Ubuntu 系统 systemd timers 详解:替代 crontab 的定时任务进阶方案
linux·运维·ubuntu
Lsir10110_8 分钟前
【Linux】深入解剖页表——分页式存储
linux·运维·服务器
victory04318 分钟前
服务器病毒处理记录
运维·服务器·chrome
爱吃生蚝的于勒9 分钟前
【Linux】线程概念(一)
java·linux·运维·服务器·开发语言·数据结构·vim
风指引着方向9 分钟前
昇腾 AI 开发生产力工具:CANN CLI 的高级使用与自动化脚本编写
运维·人工智能·自动化
fengyehongWorld13 分钟前
Linux yq命令
linux·运维·服务器
weixin_4046793114 分钟前
docker部署ollama
运维·docker·容器