PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

vi 사용법

강의10

PowerPoint 프레젠테이션

Sena Technologies, Inc. HelloDevice Super 1.1.0

gdb 사용법 Debugging Debug라는말은 bug를없앤다는말이다. Bug란, 컴퓨터프로그램상의논리적오류를말하며, 이것을찾아해결하는과정이바로, debugging이다. 초기컴퓨터들은실제벌레가컴퓨터에들어가서오작동을일으키는경우가있었다고하며, 여기서 debug 이라는말이

PowerPoint 프레젠테이션

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]


PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

컴파일러

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

본 강의에 들어가기 전

PowerPoint 프레젠테이션

untitled

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

PowerPoint 프레젠테이션

Microsoft PowerPoint - 06_(Linux)_(Fundamental)_C_Programming

Microsoft PowerPoint - [2009] 02.pptx

슬라이드 1

PowerPoint 프레젠테이션

C++-¿Ïº®Çؼ³10Àå

歯9장.PDF

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

vi 사용법

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

C 언어 프로그래밊 과제 풀이


중간고사

untitled

Microsoft PowerPoint - chap12-고급기능.pptx

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

歯7장.PDF

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770>

chap7.PDF

로봇SW교육원 강의자료

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft PowerPoint - chap05-제어문.pptx

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다. / /bin/ /home/ /home/taesoo/ /home/taesoo/downloads /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자 (t

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - lab14.pptx

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

chap7.key

11장 포인터

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

02 C h a p t e r Java

ABC 11장

Infinity(∞) Strategy

6주차.key

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

BMP 파일 처리

untitled

Microsoft PowerPoint - chap10-함수의활용.pptx

학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다고가정하자. / /bin/ /home/ /home/taesoo/ /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자가터미널에서다음 ls 명령입력시화면출력

hlogin2

chap8.PDF

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint oshw1.ppt [호환 모드]

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>


슬라이드 1

untitled

Microsoft PowerPoint - chap03-변수와데이터형.pptx

商用

Microsoft PowerPoint oshw1&2.ppt [호환 모드]

금오공대 컴퓨터공학전공 강의자료

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Solaris Express Developer Edition

Microsoft PowerPoint - 15-MARS

KEY 디바이스 드라이버

PowerPoint 프레젠테이션

Chapter_02-3_NativeApp

/chroot/lib/ /chroot/etc/

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap6 [호환 모드]

MPLAB C18 C

초보자를 위한 C++

C 프로그래밊 개요

슬라이드 제목 없음

많이 이용하는 라면,햄버그,과자,탄산음료등은 무서운 병을 유발하고 비만의 원인 식품 이다. 8,등겨에 흘려 보낸 영양을 되 찾을 수 있다. 도정과정에서 등겨에 흘려 보낸 영양 많은 쌀눈과 쌀껍질의 영양을 등겨를 물에 우러나게하여 장시간 물에 담가 두어 영양을 되 찾는다

Interstage5 SOAP서비스 설정 가이드

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - Chapter_09.pptx

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

Transcription:

DEVELOPMENT ENVIRONMENT 2 MAKE Jo, Heeseung

MAKE Definition make is utility to maintain groups of programs Object If some file is modified, make detects it and update files related with modified one 2

MAKE BASIC RULES 3 components Target, dependency, command File format File name: Makefile Format target: dependency [tab] command 3

MAKE EXAMPLE make 를사용하지않을때 gcc -c main.c gcc -c add.c gcc -c sub.c gcc -o test main.o add.o sub.o 혹은, gcc -o test main.c add.c sub.c 4

MAKEFILE EXAMPLE Makefile all: main.o add.o sub.o gcc -o test main.o add.o sub.o main.o: addsub.h main.c gcc -c main.c add.o: add.c gcc -c add.c sub.o: sub.c gcc -c sub.c 반드시 tab 으로입력 5

MAKE EXAMPLE 어느때어떤 target이다시컴파일될것인가? main.c가바뀌었을경우 add.c 혹은 sub.c가바뀌었을경우 addsub.h가바뀌었을경우 6

MAKE CLEAN To clean up make clean all: main.o add.o sub.o gcc -o test main.o add.o sub.o main.o: addsub.h main.c gcc -c main.c add.o: add.c gcc -c add.c sub.o: sub.c gcc -c sub.c clean: rm *.o test 7

MACRO CC=gcc SRC=main.c add.c sub.c main: ${SRC} ${CC} -o test ${SRC} 8

미리정해져있는매크로 make -p 를통하여모든값들을확인가능 ASFLAGS = as 명령어의옵션세팅 - AS = as CFLAGS = gcc 의옵션세팅 - CC = cc (= gcc) CPPFLAGS = g++ 의옵션 - CXX = g++ LDLFAGS = ld 의옵션세팅 - LD = ld LFLAGS = lex 의옵션세팅 - LEX = lex YFLAGS = yacc 의옵션세팅 - YACC = yacc 9

SIMPLE MAKEFILE CFLAGS = -Wall -O -g CFLAGS = -Wall -O -g bin=hello t1=main t2=funcs obj=$(t1).o $(t2).o bin=hello t1=main t2=funcs obj=main.o funcs.o all: $(bin) $(bin): $(obj) $(CC) $(obj) -o $@ clean: rm -f $(bin) *.o all: hello hello: main.o funcs.o gcc main.o funcs.o -o hello clean: rm -f hello *.o $(bin) 을나타내는내부변수 10

EX: MAKEFILE 작성 실습목표 앞서코딩한 99단프로그램을 build할수있는 Makefile 을작성 make, make all, make clean이정상적으로동작하는지확인 - make 와 make all 은동일함 11

GNU DEBUGGER (GDB)

GDB 기본사용법 gcc 컴파일시 -g 옵션추가 (-O 옵션은제거 ) gdb 실행 gdb a.out gdb --args a.out 1 2 3 4 root@iter1:/tmp> gdb a.out GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://bugs.launchpad.net/gdb-linaro/>... Reading symbols from /tmp/a.out...done. (gdb) 13

GDB 기본사용법 종료 q / ctrl+d 소스찾아가기 (list) l : main 함수를기점으로소스의내용이출력된다 l 10 : 10 행주변의소스가출력 l func : func 함수의소스를출력 l a.c:func : a.c 파일의 func 함수부분을출력 l a.c:10 : a.c 파일의 10행을기준으로출력 14

GDB 기본사용법 중단점사용하기 (breakpoint) b func : func 함수에브레이크포인트설정 b 10 : 10 행에브레이크포인트설정 b a.c:func : a.c 파일의 func 함수에브레이크포인트설정 b a.c:10 : a.c 파일의 10 행에브레이크포인트설정 b +2 : 현재행에서 2 개행이후지점에브레이크포인트설정 b -2 : 현재행에서 2 개행이전지점에브레이크포인트설정 b *0x8049000 : 0x8049000 주소에브레이크포인트설정 ( 어셈블리로디버깅시사용 ) b 10 if var == 0 : 10 행에브레이크포인트를설정해되, var 변수값이 0 일때작동 15

GDB 기본사용법 중단점삭제하기 (clear, delete) cl func : func 함수의시작부분에브레이크포인트지움 cl 10 : 10행의브레이크포인트지움 cl a.c:func : a.c 파일의 func함수의브레이크포인트지움 cl a.c:10 : a.c 파일의 10행의브레이크포인트지움 cl : 모든브레이크포인트지움 16

GDB 기본사용법 프로그램실행, 종료 (run, kill) r : 프로그램수행 ( 재시작 ) r arg1 arg2 : arg1과 arg2를인자로프로그램수행 k : 프로그램수행종료 역추적하기 (backtrace) bt : 오류가발생한함수를역으로찾아감 17

GDB 기본사용법 변수정보보기 (info, print) info locals : 현재상태에서어떤지역변수들이있으며, 값은어떠한지를알수있음 info variables : 현재상태에서의전역변수리스트를확인 p lval : lval 값을확인 p func : func 함수의주소값을확인 p pt : pt 가구조체라면구조체의주소를확인 p *pt : pt 가구조체라면구조체의값을확인 p **pt : *pt 가구조체라면구조체의값을확인 info registers : 레지스트값전체를한번에확인 18

GDB 기본사용법 디버깅하기 (step, next, continue, until, finish, return, step instruction, next instruction) s : 현재출력된행을수행하고멈추지만, 함수의경우함수의내부로들어가서수행 s 5 : s 를 5 번입력한것과동일 n : 현재행을수행하고멈추지만, 함수의경우함수를수행하고넘어감 n 5 : n 을 5 번입력한것과동일 c : 다음브레이크포인트를만날때까지계속수행 u : for 문에서빠져나와서다음브레이크포인트까지수행 19

EX: GDB 실습목표 다음프로그램을정상적인결과값이나오도록 debugging 하시오 gcc -g -o a.out a.c # include <stdio.h> void main() { int i, num, j; printf ("Enter the number: "); scanf ("%d", &num ); for (i=1; i<num; i++) j=j*i; } printf("the factorial of %d is %d\n", num, j); 20

EX: GDB 실습목표 다음프로그램은왜 segment fault를만드는지설명하시오 gcc -g -o a.out a.c #include <stdio.h> void main() { char *temp= "Paras"; int i; i=0; temp[0]='f'; } for (i=0 ; i < 5 ; i++ ) printf("%c\n", temp[i]); 21

EX: GDB 실습목표 다음프로그램은왜 segment fault를만드는지설명하시오 gcc -g -o a.out a.c #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char **argv) { char *buf; buf = malloc(1<<31); strcpy(buf, "This is Test"); printf("%s\n", buf); } return 0; 22

FILE TRANSFER USING WINSCP

WINSCP http://winscp.net ssh 를이용한파일전송 tool 24

WinSCP 25

EXERCISE Ex. 앞서제작한구구단프로그램의폴더를모두압축하여 Windows 로전송하자 tar cvfz gugu.tar.gz gugu zip -r gugu.zip gugu WinSCP 를이용하여다운로드 26