linux strace ½ø³Ì¸ú×Ù
linux strace ½ø³Ì¸ú×Ù
µ÷ÓÃ:
strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...
[ -ofile ] [ -ppid ] ... [ -sstrsize ] [ -uusername ] [ command [ arg ... ] ]
strace -c [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ] [ command [ arg ... ] ]
¹¦ÄÜ:
¸ú×Ù³ÌʽִÐÐʱµÄϵͳµ÷ÓúÍËù½ÓÊÕµÄÐźÅ.ͨ³£µÄÓ÷¨ÊÇstraceÖ´ÐÐÒ»Ö±µ½commande½áÊø.
²¢ÇÒ½«Ëùµ÷ÓõÄϵͳµ÷ÓõÄÃû³Æ¡¢²ÎÊýºÍ·µ»ØÖµÊä³öµ½±ê×¼Êä³ö»òÕßÊä³öµ½-oÖ¸¶¨µÄÎļþ.
straceÊÇÒ»¸ö¹¦ÄÜÇ¿´óµÄµ÷ÊÔ,·ÖÎöÕï¶Ï¹¤¾ß.Ä㽫·¢ÏÖËûÊÇÒ»¸ö¼«ºÃµÄ°ïÊÖÔÚÄãÒªµ÷ÊÔÒ»¸öÎÞ·¨¿´µ½Ô´Âë»òÕßÔ´ÂëÎÞ·¨ÔÚ±àÒëµÄ³ÌÐò.
Ä㽫ÇáËɵÄѧϰµ½Ò»¸öÈí¼þÊÇÈçºÎͨ¹ýϵͳµ÷ÓÃÀ´ÊµÏÖËûµÄ¹¦ÄܵÄ.¶øÇÒ×÷Ϊһ¸ö³ÌÐòÉè¼ÆÊ¦,Äã¿ÉÒÔÁ˽⵽ÔÚÓû§Ì¬ºÍÄÚºË̬ÊÇÈçºÎͨ¹ýϵͳµ÷ÓúÍÐźÅÀ´ÊµÏÖ³ÌÐòµÄ¹¦ÄܵÄ.
straceµÄÿһÐÐÊä³ö°üÀ¨ÏµÍ³µ÷ÓÃÃû³Æ,È»ºóÊDzÎÊýºÍ·µ»ØÖµ.Õâ¸öÀý×Ó:
strace cat /dev/null
ËûµÄÊä³ö»áÓÐ:
open("/dev/null",O_RDONLY) = 3
ÓдíÎó²úÉúʱ,Ò»°ã»á·µ»Ø-1.ËùÒÔ»áÓдíÎó±êÖ¾ºÍÃèÊö:
open("/foor/bar",)_RDONLY) = -1 ENOENT (no such file or directory)
ÐźŽ«Êä³öιÐźűêÖ¾ºÍÐźŵÄÃèÊö.¸ú×Ù²¢ÖжÏÕâ¸öÃüÁî"sleep 600":
sigsuspend({}
--- SIGINT (Interrupt) ---
+++ killed by SIGINT +++
²ÎÊýµÄÊä³öÓÐЩ²»Ò»ÖÂ.ÈçshellÃüÁîÖÐµÄ ">>tmp",½«Êä³ö:
open("tmp",O_WRONLY|O_APPEND|A_CREAT,0666) = 3
¶ÔÓڽṹָÕë,½«½øÐÐÊʵ±µÄÏÔʾ.Èç:"ls -l /dev/null":
lstat("/dev/null",{st_mode=S_IFCHR|0666},st_rdev=makdev[1,3],...}) = 0
Çë×¢Òâ"struct stat" µÄÉùÃ÷ºÍÕâÀïµÄÊä³ö.lstatµÄµÚÒ»¸ö²ÎÊýÊÇÊäÈë²ÎÊý,¶øµÚ¶þ¸ö²ÎÊýÊÇÏòÍâ´«Öµ.
µ±Äã³¢ÊÔ"ls -l" Ò»¸ö²»´æÔÚµÄÎļþʱ,»áÓÐ:
lstat(/foot/ball",0xb004) = -1 ENOENT (no such file or directory)
char*½«×÷ΪCµÄ×Ö·û´®ÀàÐÍÊä³ö.ûÓÐ×Ö·û´®Êä³öʱһ°ãÊÇchar* ÊÇÒ»¸öתÒå×Ö·û,Ö»Êä³ö×Ö·û´®µÄ³¤¶È.
µ±×Ö·û´®¹ý³¤ÊÇ»áʹÓÃ"..."Ê¡ÂÔ.ÈçÔÚ"ls -l"»áÓÐÒ»¸ögepwuidµ÷ÓöÁÈ¡passwordÎļþ:
read(3,"root::0:0:System Administrator:/"...,1024) = 422
µ±²ÎÊýÊǽṹÊý×éʱ,½«°´ÕÕ¼òµ¥µÄÖ¸ÕëºÍÊý×éÊä³öÈç:
getgro
Ïà¹ØÎĵµ£º
MYSQL°²×°
//½âѹ±àÒë°²×°
# tar xzvf mysql-5.0.27.tar.gz
# cd mysql-5.0.27
# ./configure -prefix=/home/redadmin/mysql
# make
# make install
# cd /home/redadmin/mysql/
# cp share/mysql/my-medium.cnf ./
# mv my-medium.cnf my.cnf
// my.confÎļþÐÞ¸Ä
# vi my.cnf
ÐÞ¸Äǰ£º
port &nb ......
±àÒëµ¥¸öÔ´Îļþ
ΪÁ˽øÐвâÊÔ£¬Äã¿ÉÒÔ´´½¨“Hello World”³ÌÐò£º
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
printf(”Hello world!\n”);
exit(0);
}
ʹÓÃÈçÏÂÃüÁî±àÒë²¢²âÊÔÕâ¸ö´úÂ룺
# gcc -o hello hello.c
# ./hello
Hello wordl!
ÔÚÄ ......
Trace32-ICDÊÇĿǰ¹¦ÄÜ×îÇ¿´óµÄ·ÂÕæÆ÷£¬Ö§³Ö¸÷ÖÖCPU£¬°üÀ¨ARM/X86µÈ¡£Trace32Êǵ¹úlauterbach¹«Ë¾µÄ²úÆ·£¬¹¦ÄÜÇ¿´ó£¬Ö§³Ö¸÷ÖÖ²Ù×÷ϵͳµ÷ÊÔ£¬Èçlinux/vxworks/winceµÈ£¬²»¹ý¼Û¸ñÒ²±È½Ï¸ß£¬Òª3-5ÍòRMB£¬ÏÖÔÚÒ²ÓÐЩ·ÂÖÆµÄTrace£¨ÈçTrace32-ICP£©£¬¼Û¸ñ±È½Ï±ãÒË£¬´ó¸Å1Íò¶àRMB¡£Trace32ÓÉÓÚÆä¹¦ÄÜÇ¿´ó£¬ÌرðÊʺϴóÐÍÇ¶È ......
ÔÚLinux»·¾³ÏÂÊäÈë: cd /usr/openv/netbackup/bin/admincmd/
./bpexpdate -m ´Å´ø±êÇ©Ãû(media ID) -d 0 ±íʾ¶ÔÕâÅÌ´Å´øµÄÊý¾ÝÇå¿Õ,Èç´Å´ø½éÖʱ£´æÖÜÆÚÊÇÓÀ¾ÃµÄ,
Ò²»áÈ«²¿Çå¿Õ,ʹËü¹ýÆ ......
linuxÖеĴ󲿷ÖÇý¶¯³ÌÐò,ÊÇÒÔÄ£¿éµÄÐÎʽ±àдµÄ.ÕâЩÇý¶¯³ÌÐòÔ´Âë¿ÉÒÔÐ޸ĵ½ÄÚºËÖÐ,Ò²¿ÉÒÔ°ÑËûÃDZàÒë³ÉÄ£¿éÐÎÊÆ,ÔÚÐèÒªµÄʱºò¶¯Ì¬¼ÓÔØ.
Ò»¸öµäÐ͵ÄÇý¶¯³ÌÐò,´óÌåÉÏ¿ÉÒÔ·ÖΪÕâô¼¸¸ö²¿·Ö:
1¡¢×¢²áÉ豸
ÔÚϵͳ³õÆô,»òÕßÄ£¿é¼ÓÔØÊ±ºò,±ØÐ뽫É豸µÇ¼Çµ½ÏàÓ¦µÄÉ豸Êý×é,²¢·µ»ØÉ豸µÄÖ÷Çý¶¯ºÅ,ÀýÈç:¶Ô¿ìÉ豸À´Ëµµ÷ÓÃrefister_b ......