ʹÓà GDB µ÷ÊÔ Linux Èí¼þ
×÷Õߣºdio
email: hao@peng.com.cn
ÈÕÆÚ£º8/21/2001 1:00:47 PM
ÄÚÈÝ£º
±àÒë
ÔËÐÐ gdb
µ÷ÊԻỰʾÀý
ʹÓöϵã
¸ü¶à¶ÏµãºÍ¹Û²ìµã
Core Îļþ
¶ÑÕ»¸ú×Ù
Á¬½Óµ½ÆäËü½ø³Ì
ÆäËüС¼¼ÇÉ
½áÊøÓï
²Î¿¼×ÊÁÏ
¹ØÓÚ×÷Õß
GNU µ÷ÊÔÆ÷¼ò½é
×÷Õß:David Seager
Linux µÄ´ó²¿·ÖÌØÉ«Ô´×ÔÓÚ shell µÄ GNU µ÷ÊÔÆ÷£¬Ò²³Æ×÷ gdb¡£gdb ¿ÉÒÔÈÃÄú²é¿´³ÌÐòµÄÄÚ²¿½á¹¹¡¢´òÓ¡±äÁ¿Öµ¡¢ÉèÖöϵ㣬ÒÔ¼°µ¥²½µ÷ÊÔÔ´´úÂë¡£ËüÊǹ¦Äܼ«ÆäÇ¿´óµÄ¹¤¾ß£¬ÊÊÓÃÓÚÐÞ¸´³ÌÐò´úÂëÖеÄÎÊÌâ¡£ÔÚ±¾ÎÄÖУ¬ÎÒ½«³¢ÊÔ˵Ã÷ gdb Óжà°ô£¬¶àʵÓá£
±àÒë
¿ªÊ¼µ÷ÊÔ֮ǰ£¬±ØÐëÓóÌÐòÖеĵ÷ÊÔÐÅÏ¢±àÒëÒªµ÷ÊԵijÌÐò¡£ÕâÑù£¬gdb ²ÅÄܹ»µ÷ÊÔËùʹÓõıäÁ¿¡¢´úÂëÐкͺ¯Êý¡£Èç¹ûÒª½øÐбàÒ룬ÇëÔÚ gcc£¨»ò g++£©ÏÂʹÓöîÍâµÄ -g Ñ¡ÏîÀ´±àÒë³ÌÐò£º
gcc -g eg.c -o eg
ÔËÐÐ gdb
ÔÚ shell ÖУ¬¿ÉÒÔʹÓà gdb ÃüÁî²¢Ö¸¶¨³ÌÐòÃû×÷Ϊ²ÎÊýÀ´ÔËÐÐ gdb£¬ÀýÈç gdb eg£»»òÕßÔÚ gdb ÖУ¬¿ÉÒÔʹÓà file ÃüÁîÀ´×°ÈëÒªµ÷ÊԵijÌÐò£¬ÀýÈç file eg¡£ÕâÁ½ÖÖ·½Ê½¶¼¼ÙÉèÄúÊÇÔÚ°üº¬³ÌÐòµÄĿ¼ÖÐÖ´ÐÐÃüÁî¡£×°Èë³ÌÐòÖ®ºó£¬¿ÉÒÔÓà gdb ÃüÁî un À´Æô¶¯³ÌÐò¡£
µ÷ÊԻỰʾÀý
Èç¹ûÒ»ÇÐÕý³££¬³ÌÐò½«Ö´Ðе½½áÊø£¬´Ëʱ gdb ½«ÖØÐ»ñµÃ¿ØÖÆ¡£µ«Èç¹ûÓдíÎ󽫻áÔõôÑù£¿ÕâÖÖÇé¿öÏ£¬gdb »á»ñµÃ¿ØÖƲ¢ÖжϳÌÐò£¬´Ó¶ø¿ÉÒÔÈÃÄú¼ì²éËùÓÐÊÂÎïµÄ״̬£¬Èç¹ûÔËÆøºÃµÄ»°£¬¿ÉÒÔÕÒ³öÔÒò¡£ÎªÁËÒý·¢ÕâÖÖÇé¿ö£¬ÎÒÃǽ«Ê¹ÓÃÒ»¸öʾÀý³ÌÐò£º
´úÂëʾÀý eg1.c
#include
int wib(int no1, int no2)
{
int result, diff;
diff = no1 - no2;
result = no1 / diff;
return result;
}
int main(int argc, char *argv[])
{
int value, div, result, i, total;
value = 10;
div = 6;
total = 0;
for(i = 0; i < 10; i++)
{
result = wib(value, div);
total += result;
div++;
value--;
}
printf("%d wibed by %d equals %dn", value, div, total);
return 0;
}
Õâ¸ö³ÌÐò½«ÔËÐÐ 10 ´Î for Ñ»·£¬Ê¹Óà wib() º¯Êý¼ÆËã³öÀÛ»ýÖµ£¬×îºó´òÓ¡³ö½á¹û¡£
ÔÚÄúϲ»¶µÄÎı¾±à¼Æ÷ÖÐÊäÈëÕâ¸ö³ÌÐò£¨Òª±£³ÖÏàͬµÄÐоࣩ£¬±£´æÎª eg1.c£¬Ê¹Óà gcc -g eg1.c -o eg1 ½øÐбàÒ룬²¢Óà gdb eg1 Æô¶¯ gdb¡£Ê¹Óà un ÔËÐгÌÐò¿ÉÄÜ»á²úÉúÒÔÏÂÏûÏ¢£º
Program received signal SIGFPE, Arithmetic exception.
0x80483ea in wib (no1=8, no2=8) at eg1.c:7
7 result = no1 / diff;
(gdb)
g
Ïà¹ØÎĵµ£º
1.µÇ¼£º mysql -uroot -p
2.LinuxÏÂmysql ²»ÄÜÍâÍø·ÃÎÊ
ÒѾÔÚMYSQLÀïgrantÁËȨÏÞÁË¡£ÔÚÍâÍø»¹ÊDz»ÄÜ·ÃÎÊ .
ÎÊÌ⣺
cat /etc/mysql/my.conf
ÕÒµ½ÏÂÃæÒ»ÐÐ
bind-address = 127.0.0.1
Î ......
version: 1.0
date:20090721
Author£ºcrifan
Mail:green-waste(At)163.com
ÉϽӣº¡¾¼ò½é¡¿ÈçºÎ±àдlinuxÏÂnand flashÇý¶¯-1
http://green-waste.blog.163.com/blog/static/3267767820096221127554/
¡¾¶Á£¨read£©²Ù×÷¹ý³ÌÏê½â¡¿
ÒÔ×î¼òµ¥µÄread²Ù×÷ΪÀý£¬½âÊÍÈçºÎÀí½âʱÐòͼ£¬ÒÔ¼°½«Ê±Ðòͼ
ÖеÄÒªÇó£¬×ª»¯ ......
vi adduser.sh È»ºó°ÑÈçÏ´úÂëÌùÈë¡£±£´æµ½CVSROOTĿ¼Ï¡£
#!/bin/bash
#add cvs users
while [ -n "$(echo $1|grep '^_')"];
do
case $1 in
-u) param=$2
echo -e "$param:\c" >>passwd
shift ;;
-p) param=$2
echo -e `./passwdgen.pl $param`":cvsroot" >> passwd;;
*)
exit 1
esac
shift
......
Linux ÏÂSVNµÄʹÓÃ
Ò»¡¢install
sudo aptitude install subversion
¶þ¡¢checkout
sudo svn --username fpzeng co https://********/
***
It's necessary to replace my username fpzeng with yours.
Èý¡¢update
sudo svn update
¾ßÌåÓõ½±ðµÄÔÙ˵£¬½ñÌì¸Õ×°ÉÏ ......
sock_rawÔʼÌ×½Ó×Ö±à³Ì¿ÉÒÔ½ÓÊÕµ½±¾»úÍø¿¨ÉϵÄÊý¾ÝÖ¡»òÕßÊý¾Ý°ü,¶ÔÓë¼àÌýÍøÂçµÄÁ÷Á¿ºÍ·ÖÎöÊǺÜÓÐ×÷ÓõÄ.Ò»¹²¿ÉÒÔÓÐ3ÖÖ·½Ê½´´½¨ÕâÖÖsocket
1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)·¢ËͽÓÊÕipÊý¾Ý°ü
2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))·¢ËͽÓÊÕÒÔÌ« ......