我们在看代码时,总是会遇到下面问题:
 1.查看某个场景下的代码执行流
2.查看某个函数被执行时的routine
但是,如果直接查看源码,源码可能代码量大,且分支多,不容易理清。就需要让相关程序运行起来查看。
-------------------
1.无侵入方式(不修改源码)
-  
BCC (linux kernel和userspace均可用)
- iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
 - Linux eBPF Tracing Tools
 - 结合例子学习eBPF与bcc:u[ret]probe与USDT - 知乎
 - Intro to Kernel and Userspace Tracing Using BCC, Part 3 of 3
 
 -  
bpftrace
- Linux eBPF Tracing Tools
 
 -  
Ftrace
- function-graph tracer
 - function tracer
 - stack tracer
 
 -  
strace(查看系统调用)
 -  
gdb
 
2.侵入方式(修改源码)
- 添加打印log
 - 打印stack - 如:linux kernel中的dump_stack()
 










