-
시스템 프로그래밍 실습 2주차 : gcc & gdbSystem Programming/Ubuntu Linux 2021. 9. 16. 15:29728x90
gcc & gdb
기본 Command
- man [command] : command에 대한 manual을 보여준다
- pwd [options]
- cd [directory]
- ls [options] [directory]
- ps [options] : process status를 보여준다
- echo [string] : standard output을 보여준다
- cat [options] [files] : file 내용에 대해 보여준다
- head / tail [options] [file]
- mkdir / rmdir [directory]
- mv [options] [file 1] [file 2]
- cp [options] [file 1] [file 2]
- rm [options] [file]
- date [options] : 시간 보여줌
- grop [options] [expression] [files] : 특정 expression에 대한 file들을 찾는다
gcc (= GNU Compiler Collection)
gcc 과정
1) pre-processor -> *.i
2) compiler -> *.s
3) assembler -> *.o
4) linker -> *.out (executable file)
gcc command의 options
- -o [filename] : output의 이름을 [filename]으로 저장한다
- -save-temps : temporary한 중간 파일들을 저장한다 ( *.s / *.i / *.o )
- -E : output을 preprocessed 소스 코드로 저장한다 ( *.i )
- -S: assemble하지 않아서 output을 assembly code 파일로 저장한다 ( *.s )
- -c: output을 object 파일 형태로 저장한다 ( *.o )
- -g : 바이너리 파일에 표준 디버깅 정보를 포함시킨다.
Linking
a.c b.c
$ gcc -c a.c b.c // 한번에 컴파일
a.c a.o b.c b.o
$gcc -o output a.o b.o
a.c a.o b.c b.o output
gdb
$ gcc test.c -o test.out -g
$ gdb test.out
(gdb) list // Show source codes
(gdb) r // Run the program
(gdb) break [function name] // Set breakpoint at [function]
(gdb) next //Run the next line
728x90'System Programming > Ubuntu Linux' 카테고리의 다른 글
시스템 프로그래밍 실습 6주차 : Daemon (0) 2021.10.03 시스템 프로그래밍 실습 5주차 : Processes (0) 2021.09.27 시스템 프로그래밍 실습 4주차 : File I/O (0) 2021.09.20 시스템 프로그래밍 실습 3주차 : Shell & Makefile & Git (0) 2021.09.16 시스템 프로그래밍 실습 1주차 : 수업 개요 (0) 2021.09.02