linuxϱàÒë¶à¸öÎļþ
ÀýÈ磺
/home/filesÎļþ¼ÐÏÂÓÐÎļþmain.c:
#include <stdio.h>
#include "tou.h"
void main()
{
a();
}
/home/files/commonÎļþ¼ÐÏÂÓÐÎļþtou.hºÍshixian.c¡£
tou.hΪ£º
extern void a();
ÈôÓжà¸öshixianÎļþ£¬±ÈÈçshixian1.c, shixian2.c£¬¶¼¿ÉÒÔÔÚtou.hÖÐÓÃexternÉùÃ÷³öÀ´¡£
shixian.cΪ£º
#include <stdio.h>
void a()
{
printf("a");
}
±àÒëʱÓÃÃüÁgcc main.c ./common/shixian.c -o main -I /home/files/common
ÆäÖУ¬-I /home/files/common´ú±íÁ´½Óµ½Í·ÎļþËùÔÚĿ¼¡£Èô.hÎļþ¶¼ÔÚ±¾Ä¿Â¼Ï£¬Ôò²»ÓüÓ-IÖ¸Ã÷.hÎļþËùÔÚÎļþ¼Ð¡£
ÁíÍ⣬-lm±íʾÁ´½Óµ½Êýѧº¯Êý¿â¡£
Ïà¹ØÎĵµ£º
ÔÎĵØÖ·£ºhttp://blog.csdn.net/Javadino/archive/2008/09/06/2891413.aspx
Òý×Ó:
1.ÔÚLinuxϵͳÖУ¬½ø³Ì״̬³ýÁËÎÒÃÇËùÊìÖªµÄTASK_RUNNING£¬TASK_INTERRUPTIBLE£¬TASK_STOPPEDµÈ£¬»¹ÓÐÒ»¸öTASK_TRACED¡£Õâ±íÃ÷Õâ¸ö½ø³Ì´¦ÓÚʲô״̬£¿
2.strace¿ÉÒÔ·½±ãµÄ°ïÖúÎÒÃǼǼ½ø³ÌËùÖ´ÐеÄϵͳµ÷Óã¬ËüÊÇÈçºÎ¸ú×Ùµ½½ø³ÌÖ´ÐÐµÄ ......
3. GDBµÄʵÏÖ
GDBÊÇGNU·¢²¼µÄÒ»¸öÇ¿´óµÄ³ÌÐòµ÷ÊÔ¹¤¾ß£¬ÓÃÒÔµ÷ÊÔC/C++³ÌÐò¡£¿ÉÒÔʹ³ÌÐòÔ±ÔÚ³ÌÐòÔËÐеÄʱºò¹Û²ì³ÌÐòÔÚÄÚ´æ/¼Ä´æÆ÷ÖеÄʹÓÃÇé¿ö¡£ËüµÄʵÏÖÒ²ÊÇ»ùÓÚptraceϵͳµ÷ÓÃÀ´Íê³ÉµÄ¡£
Æä
ÔÀíÊÇÀûÓÃptraceϵͳµ÷Óã¬ÔÚ±»µ÷ÊÔ³ÌÐòºÍgdbÖ®¼ä½¨Á¢¸ú×Ù¹ØÏµ¡£È»ºóËùÓз¢Ë͸ø±»µ÷ÊÔ³ÌÐòµÄÐźÅ(³ýSIGKILL)¶¼»á±»gdb½Ø ......
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·ÅÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
¡¡¡¡ÒªÊ¹½Å±¾¿ÉÖ´ÐУº
±àÒë ch ......
ÒýÑÔ
find×îÇ¿´ó£¬Ê²Ã´¶¼Äܲ飬¿ÉÒÔ¸ù¾ÝÌõ¼þ²éÕÒÎļþ¡£
whichÖ»Äܲé¿ÉÖ´ÐÐÎļþºÍ±ðÃû(alias)¡£
whereisÖ»Äܲé¶þ½øÖÆÎļþ¡¢ËµÃ÷Îĵµ£¬Ô´ÎļþµÈ£¬¿ÉÒÔÕÒµ½¿ÉÖ´ÐгÌÐòºÍman page¡£
locateÊÇÔÚÊý¾Ý¿âÀï²éÕÒ£¬Êý¾Ý¿â´óÖÁÿÌì¸üÐÂÒ»´Î£¬µ«¸úwhereisÒ»Ñù¶¼ÊDzéÊý¾Ý¿âÀïµÄÄÚÈÝ¡£
1.find /etc -name my.so
2.locate ÊÇÓÃÀ´Í¨¹ý ......
ÒýÑÔ
ÔÚLinux²Ù×÷ϵͳÖУ¬ÓÐÒ»ÏîÌØÊâµÄ¹¦ÄÜ——³õʼ»¯ÄÚ´æÅÌINITRD£¨INITial Ram
Disk£©¼¼Êõ£¬¶øÇÒÄÚºËÖ§³ÖѹËõµÄÎļþϵͳӳÏñ¡£ÓÐÁËÕâÁ½ÏÄÜ£¬ÎÒÃÇ¿ÉÒÔÈÃLinuxϵͳ´ÓСµÄ³õʼ»¯ÄÚ´æÅÌÆô¶¯£¬²¢°ÑϵͳÄÚ´æµÄÒ»²¿·Ö×÷Ϊ¸ùÎļþϵ
ͳ¹ÒÔØ£¬¶øÇÒ²»Ê¹Óý»»»·ÖÇø£¨Èç¹û²»ÔËÐÐX
WindowsÕâÊÇÍêÈ«¿ÉÒԵģ©£¬¼ ......