您现在的位置是:首页 > 童真趣事童真趣事

Linux系统性能调试工具—strace

查看 烟火之旅 的更多文章烟火之旅 2026-01-31 【童真趣事】 2172人已围观

今天给大家分享一个linux内核自带的调试工具,该工具可用于查看和定位系统问题,进程运行过程探索,进行进程监控,对每个系统调用都可以监测,有助于我们优化系统性能。

话不多说,本文调试过程基于android10内核4.19版本。

strace ls

执行命令时,它会显示ls命令在运行过程中所进行的所有系统调用及其相关参数和返回值:

wKgZPGkanvOAZ0E4AAVIs-iTduo083.png

strace -h

执行该命令时,会列出strace的用法和相关的解释:

我们在使用的时候应该是对某个进程和服务进行定位和监控,在调试的时候先大致定位是什么功能有问题,针对性去排查。比如我们要检查摄像头功能在执行的过程中有没有问题:

wKgZPGkanvOAeO5DAABp-6ICsR0897.png

strace-p1944-T

执行该指令显示每个系统调用的执行时间,由该信息,我们可以去判断我们在哪些指令上执行的系统调用花费的时间更长,进而再去定位相关的源代码,在做调试,后期在融入我们自己的代码程序时,也可以通过这样的方式进行调试:

strace-p1944-c

执行该指令会统计每个系统调用的次数、时间消耗等信息,并在程序结束时打印总结报告:

wKgZPGkanvSAbiMQAAB6h8TQORk183.png

strace -p 1944 -tt

执行该指令,会在每个系统调用前加上时间:

wKgZPGkanvSAZeX1AAGXIu4OKVk987.png

strace -p 1944 -v

执行该指令会获取更多细节:

wKgZPGkanvSAUy74AAFtsgaB8Qg572.png

此外我们还可以把输出结果保存到文本里面,然后pull到电脑上供专业的人分析:

wKgZPGkanvSAc8phAABqG2RV8es074.png

wKgZPGkanvSAfhpeAAPWJ2nR3ZA043.png

好了,就介绍到这里,其他指令大家可以自行探索和实践。


Tags: