使用strace调试程序
来源:互联网 发布:windows正版验证网站 编辑:程序博客网 时间:2024/05/18 13:27
命令:strace
作用:strace常用来跟踪进程执行时的系统调用和所接收的信号。
简介:在Linux中,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
示例:
每一行都是一条系统调用,等号左边是系统调用的函数名及其参数,右边是该调用的返回值。
strace 显示这些调用的参数并返回符号形式的值。
strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。
~$strace pwdexecve("/bin/pwd", ["pwd"], [/* 19 vars */]) = 0brk(0) = 0x1d19000access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b31c26000access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=22297, ...}) = 0mmap(NULL, 22297, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f4b31c20000close(3) = 0access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\30\2\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=1811128, ...}) = 0mmap(NULL, 3925176, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f4b31647000mprotect(0x7f4b317fb000, 2097152, PROT_NONE) = 0mmap(0x7f4b319fb000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b4000) = 0x7f4b319fb000mmap(0x7f4b31a01000, 17592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f4b31a01000close(3) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b31c1f000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b31c1e000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b31c1d000arch_prctl(ARCH_SET_FS, 0x7f4b31c1e700) = 0mprotect(0x7f4b319fb000, 16384, PROT_READ) = 0mprotect(0x606000, 4096, PROT_READ) = 0mprotect(0x7f4b31c28000, 4096, PROT_READ) = 0munmap(0x7f4b31c20000, 22297) = 0brk(0) = 0x1d19000brk(0x1d3a000) = 0x1d3a000open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=2919792, ...}) = 0mmap(NULL, 2919792, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f4b3137e000close(3) = 0getcwd("/root", 4096) = 6fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4b31c25000write(1, "/root\n", 6/root) = 6close(1) = 0munmap(0x7f4b31c25000, 4096) = 0close(2) = 0exit_group(0) = ?
0 0
- 使用strace调试程序
- 使用strace调试linux程序
- 关于使用strace调试网络程序
- 利用strace 调试程序
- Strace 调试程序
- 使用 Strace 调试工具
- 使用Strace 调试工具
- 使用strace 和 truss 来协助调试程序
- 使用linux的strace来调试程序系统调用
- Linux 用 strace调试程序
- Linux程序调试利器strace
- strace+pstack 性能调试程序
- 使用 Linux 的 strace 命令跟踪/调试程序的常用选项
- 使用 Linux 的 strace 命令跟踪/调试程序的常用选项
- 使用 Linux 的 strace 命令跟踪/调试程序的常用选项
- strace调试
- strace 调试
- 使用strace,ltrace调试工具的乐趣
- 10块设备驱动程序的编写
- Codeforces Gym 100500E IBM Chill Zone
- threadlocal 作用
- 机器学习--AdaBoost元算法
- 2-19
- 使用strace调试程序
- MFC:RichEdit and CFindReplaceDialog
- matlab调用笔记本摄像头拍照并连续保存
- 一个错误导致的python血案
- 部署描述文件web.xml解析(二) Servlet生命周期
- andriod中布局
- 【C++】正确使用虚析构函数
- Java共享模式/享元模式(Flyweight模式)
- 学习JavaScript的闭包