设为首页 加入收藏

TOP

Linux进程控制--STRACE:追踪信号和系统调用
2014-11-24 08:37:05 来源: 作者: 【 】 浏览:0
Tags:Linux 进程 控制 --STRACE: 追踪 信号 系统 调用

在传统的UNIX系统上,判断一个进程实际正在做什么相当困难,用户只有根据从文件系统以及ps这样的工具取得的间接数据和经验来推测,而在Linux中,用户可以通过strace命令直接观察一个进程,进程的每一次系统调用,每接收到一个信号,这个命令都能显示出来。用户还可以把strace附在一个正在执行的进程上,监视一会儿该进程,再从进程上脱离,整个过程都不会影响那个进程。


execve("/usr/bin/top", ["top"], [/* 30 vars */]) = 0


brk(0) = 0x922a000


…………


gettimeofday({1268710722, 9547}, {0, 0}) = 0


stat64("/proc/self/task", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0


open("/proc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3


fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC)


getdents(3, /* 154 entries */, 32768) = 2708


stat64("/proc/1", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0


open("/proc/1/stat", O_RDONLY) = 4


read(4, "1 (init) S 0 1 1 0 -1 4202752 16"..., 1023) = 199


close(4) = 0


open("/proc/1/statm", O_RDONLY) = 4


read(4, "507 222 168 33 0 70 0\n", 1023) = 22


close(4) = 0


socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4


connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)


close(4) = 0


socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4


connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)


close(4) = 0


open("/etc/nsswitch.conf", O_RDONLY) = 4


fstat64(4, {st_mode=S_IFREG|0644, st_size=1696, ...}) = 0


mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb777e000


read(4, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1696


read(4, "", 4096) = 0


close(4) = 0


…………



以上记录了从调用top命令开始,top命令运行期间,至top命令结束时所有的调用过程。


也可以用#strace –p 1940 (1940是top进程的PID) 命令来附加到正在运行的进程上来查看其状态。


由于结果数据量较大,在终端上无法显示完整信息,可将其结果保存至文件,再查看。# strace –o a.txt top


但不能这样用: strace top >a.txt 这样只会将top命令的结果存入a.txt。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux 2.6 内核软中断(softirq)执.. 下一篇Linux驱动工程师成长之路

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·怎样用 Python 写一 (2025-12-27 02:49:19)
·如何学习python数据 (2025-12-27 02:49:16)
·想要自学数据分析, (2025-12-27 02:49:14)
·Java 集合框架 - 菜 (2025-12-27 02:19:36)
·Java集合框架最全详 (2025-12-27 02:19:33)