Linux Programming #5

박진우·2022년 8월 4일
0

Linux

목록 보기
5/7

💡 C 프로그램 개발 및 디버깅 오픈소스 SW , 컴파일 자동화

◽ make 시스템

// mystring.h

void reverse_string(char*);
void reverse_words(char*);



// main.c
#include <stdio.h>
#include “mystring.h”

int main() {
  char a[100];

  gets(a);

  reverse_words(a);

  printf("%s\n", a);

  return 0;
}

// mystring.c
#include <string.h>
void reverse_words(char *s) {
  char b[100], *t, *z;
  int c = 0;
  t = s;
  while(*t) {                           //processing complete string
    while(*t != ' ' && *t != '\0') {    //extracting word from string
      b[c] = *t;
      t++;
      c++;
    }
    b[c] = '\0';
    c = 0;
 
    reverse_string(b);        // reverse the extracted word

    z = b;

    while (*z) {    //copying the reversed word into original string
      *s = *z;
      z++;
      s++;
    }

    while (*s == ' ') {                 // skipping space(s)
      s++;
    }
   
    t = s;                              // pointing to next word
  }
}
void reverse_string(char *t) {
  int l, c;
  char *e, s;

  l = strlen(t);
  e = t + l - 1;

  for (c = 0; c < l/2; c++) {
    s  = *t;
    *t = *e;
    *e = s;
    t++;
    e--;
  }
}

  • vi 에디터를 이용해 다음의 C 프로그램 모듈들을 작성하고 컴파일을 위한 makefile을 작성하고 make 시스템으로 컴파일한다.




◽ gdb

GDB

GDB, GNU 프로젝트 디버거이며, 프로그램 수행 중에 안에서 일어나고 있는 것들을 보여 주거나 크래쉬가 난 순간에 프그램이 어떤일을 하고 있었는지를 보여준다.

  • 리눅스 설치 명령으로 gdb를 설치



  • 1) l(ist) 를 이용해 main 함수의 내용을 확인

  • 2) ain 함수reverse_words함수 , reverse_string 함수 breakPoint 를 만들고 디버깅을 시작

  • 3) n , c를 이용해 다음 명령으로 넘어가면서 p로 배열 값을 출력



자주 사용되는 명령어




◽ jdb

  • JDB(Java Debugger)는 Java 클래스를 디버깅할 수 있는 간단한 Command-Line 디버거이다.

  • JDB 명령어에 대한 설명은 JDB를 실행하여 -help를 통해서 볼 수 있다.

  • 먼저 vi 에디터를 이용해 다음의 java 프로그램을 작성

  • 1) 리눅스 설치 명령으로 jdb를 설치

  • 2) 자바 프로그램을 –g 옵션을 이용해 컴파일

  • 3) 디버깅이 가능하도록 /etc/hosts를 편집

  • 4) jdb로 ArrayExam의 디버깅을 실행

  • 5) System.out.println() 위치인 ArrayExam클래스 5번라인에 stop을 만들고 run 으로 디버깅을 시작

  • 6) n의 값을 print 명령으로 출력하세요( print n ) next로 다음 반복으로 진행하고 다시 n 값을 확인




◽ pudb

pudb ❓ : 파이썬 디버깅 도구로 파인썬 인터프리터를 줄마다 보면서 실행할 수 있도록 도와주는 도구

  • 먼저 디버깅을 확인할 파이썬 프로그램은 vi 에디터를 이용해 작성한다.

  • 1) 리눅스 설치 명령으로 pudb를 설치

  • 2) pudb를 이용해 실습 8의 python 프로그램을 디버깅모드를 수행하고, t 값이 변화되는 코드 위치에 breakPoint 를 만들고 t 값의 변화를 확인

0개의 댓글