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()
相关推荐
..过云雨16 分钟前
11.【Linux系统编程】文件系统详解——从磁盘硬件到文件系统
linux·c++·后端·缓存
qq_2715817942 分钟前
Ubuntu OpenCV C++ 获取MYNT EYE S1030-IR摄像头图像
linux·opencv·ubuntu
156082072191 小时前
在Ubuntu20.04下安装iperf3
linux·ubuntu
G31135422731 小时前
云服务器系统 选择Windows和Linux的理由
linux·服务器·windows
BS_Li1 小时前
【Linux系统编程】调试器-gdb/cgdb
linux·调试器·gdb/cgdb
luoganttcc1 小时前
介绍一下 multiprocessing 的 Manager模块
linux·运维·服务器
阿巴~阿巴~1 小时前
线程互斥:并发编程中的互斥量(Mutex)与RAII风格锁管理机制
linux·线程·pthread·互斥量·线程互斥·线程封装·raii原则
春生野草2 小时前
腾讯云部署gitlab
运维·centos·gitlab
牛奶咖啡132 小时前
Linux中安装部署Hadoop集群的保姆级安装配置教程
linux·hadoop·openjdk21安装配置·openjre21安装配置·hadoop集群安装配置·linux的ssh配置·linux实现免密登录配置
dessler3 小时前
MYSQL-数据库介绍
linux·运维·mysql