ETC/Linux 15

vi 에디터

키 내용 비고 i 현재 커서의 앞에서부터 문자 입력 소문자 I 현재 커서가 위치하고 있는 줄의 제일 앞부분에서부터 문자를 입력 대문자 a 현재 커서의 뒤에서부터 문자가 입력 소문자 A 현재 커서가 위치하고 있는 줄의 제일 뒷부분에서부터 문자를 입력 대문자 o 현재 커서의 위치에서 다음 줄을 삽입하고 문자를 입력 소문자 O 현재 커서의 위치에서 앞줄을 삽입하고 문자를 입력 대문자 R 현재 커서가 있는 위치부터 기존의 문자를 새로운 문자로 덮어쓴다 대문자 r 현재 커서가 있는 위치의 한 문자를 새로운 문자로 덮어쓴다 소문자 복사와 붙여넣기키 내용 비고 yy 현재의 라인을 메모리로 복사 :y x 현재 커서 위치의 문자를 삭제하고 메모리로 복사한다. p 메모리에 복사된 내용을 현재의 위치에 붙여 넣는다. :pu..

ETC/Linux 2016.09.30

gdb 기초 사용법 (메모리, 레지스터 내용 읽기)

레지스터 내용부터 읽어보자info reg | info registers모든 레지스터 정보를 얻을 수 있다. 1개, 또는 여러개의 레지스터 정보를 얻길 원한다면info reg 레지스터 이름1,이름2,이름3 ...이런식으로 하면 된다이제 레지스터의 정보를 확인 할수 있다. 그렇담.. 메모리 내용을 확인해 보자.스택이라던지 데이터영역에 잇는 내용을 알고 싶을때 어떻게 할까 ?x/nfu 주소 이 형식을 이용한 명령을 내리면 된다 n: 반복 갯수f(format) i(명령코드) x(16진수) o(8진수) t(2진수) d(부호 있는 10진수) u(부호없는 10진수) s(문자열)u(unit)b(1바이트) h(2바이트) w(4바이트)이렇게만 써놓으면 이해가 안가므로 실습을 해봐야겠지비교해가면서 확인을 해보겠습니다우선 반..

ETC/Linux 2015.09.16

gdb 기초 사용법2(stepi nexti 차이점)

nexti 와 stepi 차이를 예문을 통해 알아보도록 하겠다우선 call 을 하는 부분이 있어야 하므로 함수를 하나 정의 하고그 부분에서 어떻게 디버깅이 진행되는지 살펴보자 이제 컴파일 후 gdb로 실행을 해보도록 하겠다intel 로 어셈블리어를 바꾸고 main함수쪽을 확인해 보았다.function으로 call 하는 부분이 보인다.main+40 (0x08048403) 이부분이다여기를 브레이크 포인트로 잡고 런을 한 후 nexti와 step의 차이를 보도록 하자call 하는 부분에 멈췄다. nexti 를 먼저 확인해 보자nexti를 하자 call을 따라 가는 것이 아니라 다음 명령으로 넘어간 것을 볼 수 있다nexti명령 하나로 call을 실행시키고 넘어간 것이다.그럼 stepi를 확인해 보자 stepi..

ETC/Linux 2015.09.16

gdb 기초 사용법

gdb를 사용해야 할 일이 많아서 내가 사용하기에 맞게끔 정리를 해야겠다인터넷을 뒤지다 보면 컴파일할때부터 gcc -g 옵션을 가지고 컴파일한 파일 위주로 설명이 되어 있다나는 그렇게 컴파일한 파일을 디버깅 하려고 쓰는게 아니기 때문에 내가 하나씩 해보면서정리를 하겠다.인터넷에는 의외로 쓸모 없는 정보들이 참 많다.. ㅠㅠㅠ ,, 참고로 이글은 초보만 보기를.. 1. gdb 실행gdb 명령을 통해 들어가고 quit 를 통해 나갈 수 있다. 원하는 프로그램을 gdb로 실행하려면gdb [프로그램 명] 으로 하면 되는데 다른 옵션들도 있으나 내가 필요한건 일단 이 명령이므로이거에 대해서만 다룰거다 이거 네모 어떻게 그리는거지.... 아무튼 test 파일을 gdb로 실행했다. -프로그램 시작run 명령을 통해서..

ETC/Linux 2015.09.15

gcc 컴파일

gcc 컴파일에 대해 간략히 알아봐야겠다.gcc는 c프로그래밍을 컴파일 해주는 녀석이다.자주쓰지 않아서 헷갈렸는데 이제는 쓸일이 좀 생겨서정리를 하면서 공부를 해야겠다 우선 gcc --help 로 어떻게 사용하는지 볼까나 옵션을 써도되고 안써도 되네요옵션 없이 사용해 보도록 하겠습니다.우선 test.c로 간단한 c프로그래밍을 해보죠디렉토리에는 test.c 밖에 없고 위에 보이는것처럼 코딩을 했습니다. 이제 옵션없이 gcc를 사용해 보겠습니다.gcc test.c 명령어를 치자 a.out 이라는 파일이 생성되었습니다.옵션 없이 사용하면 a.out 으로 자동으로 컴파일을 해줍니다.실행을 해보죠test.c 로 프로그래밍한 결과입니다. 그럼 자주 쓰는 몇개의 옵션을 볼까요버전을 확인하는 gcc --version,..

ETC/Linux 2015.09.15