'Open Source/Unix'에 해당되는 글 19건
- 2009.02.03 makefile 정의내용 및 설명(PROC 포함)
- 2009.01.30 system Memory 관리(ipcs/ipcrm)
- 2009.01.29 Unix 디버거 dbx
#내부에서 정의된 확장자 규칙 사용
.SUFFIXES: .pc .c
.c .o
#컴파일러 지정
CC = cc
PROC = proc
#proc(oracle)사용을 위한 정의
#ORACLE_HOME은 profile에서 정의 됨!
#여기서 따로 지정 가능
#ORACLE_HOME = 경로
LIB = -L$(ORACLE_HOME)/lib -lclntsh
MYINC = include/
PROCINC = include=$(ORACLE_HOME)/precomp/public/ include=$(ORACLE_HOME)/rdbms/demo/
include=$(ORACLE_HOME)/rdbms/public/
# include=$(ORACLE_HOME)/network/public/
CINC = -I$(ORACLE_HOME)/precomp/public/ -I$(ORACLE_HOME)/rdbms/demo/ -I$(ORACLE_HOME)/rdbms/public/
ORA_OPT = PARSE=NONE RELEASE_CURSOR=YES MODE=ANSI
CC_OPT =
#PROJECT 경로 지정
#HOME DIR 경로
HOME =
#실행 바이너리 저장 경로
BIN =
#HEADER 경로
INCDIR = $(HOME)/inc
#SOURCE 경로
SRCDIR = $(HOME)/src
#LIBRARY 경로
#-L경로
LIBDIR1 = -L
#컴일시 HEADER경로 지정
INC = -I$(INCDIR)
##################### FILES ##############################
#PROC SOURCE FILE LIST (%.pc)
PROCSRC =
#SOURCE FILE LIST (%.c)
SRCS = $(PROCSRC:.pc=.c)
#OBJECT FILE LIST
#위 PROC와 SOURCE FILE LIST를 정의 했으면
#특별히 추가 되는 OBJECT 아님 추가 LIST정의 안해도 된다
OBJS = $(SRCS:.c=.o)
##################### LIB ##############################
#LIBRARY FILE LIST 정의
#-l파일명 형식으로 정의
#파일명으로 들어갈 내용은 lib와 확장자를 제외한 내용이 되겠다
# ex)file name : libtest.a 일경우 정의는 -ltest
LIBS1 = -l
#컴파일 옵션 정의
CFLAGS = -g -c
#pc 컴파일 정의
.pc.c:
$(PROC) $< INCLUDE=$(MYINC) $(PROCINC) $(ORA_OPT)
#c 컴파일 정의
.c.o:
$(CC) $(INC) $(CFLAGS) $<
##################### ALL ###################################
#컴파일 정의가 여러개 되어있으면 한꺼번에 컴파일 하기위하여 list등록
# make 명령시 실행
all : TEST
##################### TEST ##############################
#바이너리 컴파일 정의
TEST : proc1 $(OBJS)
$(CC) $(CINC) $(INC) -o 실행바이너리명 $(OBJS) $(LIBDIR1) $(LIBS1) $(LIB)
proc1 : $(SRCS)
#실행 파일과 source파일을 제외한 모든 object파일 제거 옵션
#실행 방법 make clean
clean :
rm -rf $(OBJS) $(PROCSRC:.pc=.c) $(PROCSRC:.pc=.lis)
.SUFFIXES: .pc .c
.c .o
#컴파일러 지정
CC = cc
PROC = proc
#proc(oracle)사용을 위한 정의
#ORACLE_HOME은 profile에서 정의 됨!
#여기서 따로 지정 가능
#ORACLE_HOME = 경로
LIB = -L$(ORACLE_HOME)/lib -lclntsh
MYINC = include/
PROCINC = include=$(ORACLE_HOME)/precomp/public/ include=$(ORACLE_HOME)/rdbms/demo/
include=$(ORACLE_HOME)/rdbms/public/
# include=$(ORACLE_HOME)/network/public/
CINC = -I$(ORACLE_HOME)/precomp/public/ -I$(ORACLE_HOME)/rdbms/demo/ -I$(ORACLE_HOME)/rdbms/public/
ORA_OPT = PARSE=NONE RELEASE_CURSOR=YES MODE=ANSI
CC_OPT =
#PROJECT 경로 지정
#HOME DIR 경로
HOME =
#실행 바이너리 저장 경로
BIN =
#HEADER 경로
INCDIR = $(HOME)/inc
#SOURCE 경로
SRCDIR = $(HOME)/src
#LIBRARY 경로
#-L경로
LIBDIR1 = -L
#컴일시 HEADER경로 지정
INC = -I$(INCDIR)
##################### FILES ##############################
#PROC SOURCE FILE LIST (%.pc)
PROCSRC =
#SOURCE FILE LIST (%.c)
SRCS = $(PROCSRC:.pc=.c)
#OBJECT FILE LIST
#위 PROC와 SOURCE FILE LIST를 정의 했으면
#특별히 추가 되는 OBJECT 아님 추가 LIST정의 안해도 된다
OBJS = $(SRCS:.c=.o)
##################### LIB ##############################
#LIBRARY FILE LIST 정의
#-l파일명 형식으로 정의
#파일명으로 들어갈 내용은 lib와 확장자를 제외한 내용이 되겠다
# ex)file name : libtest.a 일경우 정의는 -ltest
LIBS1 = -l
#컴파일 옵션 정의
CFLAGS = -g -c
#pc 컴파일 정의
.pc.c:
$(PROC) $< INCLUDE=$(MYINC) $(PROCINC) $(ORA_OPT)
#c 컴파일 정의
.c.o:
$(CC) $(INC) $(CFLAGS) $<
##################### ALL ###################################
#컴파일 정의가 여러개 되어있으면 한꺼번에 컴파일 하기위하여 list등록
# make 명령시 실행
all : TEST
##################### TEST ##############################
#바이너리 컴파일 정의
TEST : proc1 $(OBJS)
$(CC) $(CINC) $(INC) -o 실행바이너리명 $(OBJS) $(LIBDIR1) $(LIBS1) $(LIB)
proc1 : $(SRCS)
#실행 파일과 source파일을 제외한 모든 object파일 제거 옵션
#실행 방법 make clean
clean :
rm -rf $(OBJS) $(PROCSRC:.pc=.c) $(PROCSRC:.pc=.lis)
ipcs : Message Queues, Shared Memory, Semaphores
T, ID, KEY, MODE, OWNER GROUP 순
ipcs -q,m,s
q: Message Queues List만 출력
m: Shared Memory List만 출력
s:Semaphores List만 출력
ipcrm : 올라와있는 Memory 삭제
ipcrm -q,m,s ID
q : ID의 Message Queues Down
m : ID의 Shared Memory Down
s : ID의 Semaphores Down
주의 : Key가 아닌 ID !!
T, ID, KEY, MODE, OWNER GROUP 순
ipcs -q,m,s
q: Message Queues List만 출력
m: Shared Memory List만 출력
s:Semaphores List만 출력
ipcrm : 올라와있는 Memory 삭제
ipcrm -q,m,s ID
q : ID의 Message Queues Down
m : ID의 Shared Memory Down
s : ID의 Semaphores Down
주의 : Key가 아닌 ID !!
시작전 컴파일 옵션 -g 추가(-c -g)
Command
where ->Error 구간 확인
list -> 파일의 소스 내용 확인
stop at 파일명:라인번호 -> Stop Point 지정
step ->다음 라인 실행
print 변수명(코드) ->변수 내용 확인
lwp ->실행
이후 많은 명령어가 있지만 필자가 가장 많이 쓰는 명령어다..
참고 자료로는 여기서 확인하면 된다
http://docs.sun.com/source/819-0489/index.html
(영문이다 -_-;;)
Command
where ->Error 구간 확인
list -> 파일의 소스 내용 확인
stop at 파일명:라인번호 -> Stop Point 지정
step ->다음 라인 실행
print 변수명(코드) ->변수 내용 확인
lwp ->실행
이후 많은 명령어가 있지만 필자가 가장 많이 쓰는 명령어다..
참고 자료로는 여기서 확인하면 된다
http://docs.sun.com/source/819-0489/index.html
(영문이다 -_-;;)