简介
strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。
[html]
root@ubuntu:/usr# strace cat /dev/null
execve("/bin/cat", ["cat", "/dev/null"], [/* 22 vars */]) = 0
brk(0) = 0xab1000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_W...
跟踪php-cgi时发现缺少很多lib文件,于是用ln -s这个建立链接,但是出现了一个错误:Too many levels of symbolic links
今天在linux下编译了一下boost,其中include文件和lib文件都安装在个人目录,为了编译时不必添加额外的-I参数,所以采用ln -s boost /usr/include/boost。
编译一个boost测试源文件发现如下的错误:Too many levels of symbolic links。
查找一番发现建立软链接时采用的是相对路径,所以才会产生这样的错误,解决方式是采用绝对路径建立软链接:ln -s /home/XX/include/boost /usr/include/boost即可、...