美文网首页
strace,truss,ltrace 使用

strace,truss,ltrace 使用

作者: 墨迹MoJi_5b88 | 来源:发表于2019-03-27 19:04 被阅读0次
进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。

truss和strace用来跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来跟踪进程调用库函数的情况。
跟踪一个进程的系统调用或信号产生的情况:
Linux (strace):
strace: 
    -p <pid>:      跟踪一个PID进程
    -f:            继续子进程的跟踪
    -T:            打印出每次调用所花费的时间,单位:秒
    -s:            打印字符串最大显示长度,默认32。但文件名总是显示完整
    -o <outfile>:  指定保存strace输出信息的文件
FreeBSD (truss):
truss:
    -p <pid>:      跟踪一个PID进程
    -f:            继续子进程的跟踪
    -D:            打印出每次调用所花费的时间,单位:秒
    -s:            打印字符串最大显示长度,默认32。但文件名总是显示完整
    -o <outfile>:  指定保存strace输出信息的文件
Linux(ltrace), 跟踪进程调用库函数的情况:
ltrace:
    -p <pid>:      跟踪一个PID进程
    -f:            继续子进程的跟踪
    -T:            打印出每次调用所花费的时间,单位:秒
    -t:            打印绝对时间戳
    -s:            打印字符串最大显示长度,默认32。但文件名总是显示完整
    -o <outfile>:  指定保存strace输出信息的文件

相关文章

网友评论

      本文标题:strace,truss,ltrace 使用

      本文链接:https://www.haomeiwen.com/subject/scutbqtx.html