Effective/Effective Debugging

[ED] 22. 유닉스 명령줄 도구로 디버깅 데이터 분석하기

seeyoun 2024. 11. 18. 23:57

여러 가지 유닉스 명령을 파이프라인으로 조합하는 방식으로 복잡한 분석 작업을 간단히 처리할 수 있다.

  • 디버깅 과정에서 다루는 데이터는 대부분 텍스트 포맷으로 되어 있기 때문에 사용하는 도구의 표준 입력으로 데이터를 그대로 전달할 수 있다.
  • 텍스트를 분석할 때 여러 유닉스 명령을 파이프라인으로 조합하여 사용한다.
  • 일반적으로 다음 순서로 스크립트를 작성하면 된다.
    • 가져오기(Fetching)
    • 선택하기(Selecting)
    • 처리하기(Processing)
    • 정리하기(Summarizing)

 


자주 쓰이는 유닉스 명령어

  • grep:
    텍스트 파일에서 특정 문자열 또는 패턴을 검색하고 일치하는 줄을 출력
  • find:
    디렉터리 트리에서 파일이나 디렉터리를 이름, 크기, 수정 시간 등 다양한 조건으로 검색
  • awk:
    텍스트 데이터를 행(row)과 열(column) 단위로 처리 및 변환하며, 특정 열을 추출하거나 계산 작업에 사용됨
  • sort:
    텍스트 파일의 내용을 알파벳 순, 숫자 순 등으로 정렬
  • head:
    파일의 처음 몇 줄을 출력(기본적으로 첫 10줄).

 


처리하기 힘든 포맷으로 구성되어 있다면 그 포맷을 지원하는 도구를 사용한다.

  • 예를들어 C++ 프로그램이 갑자기 종료했다면, 해당 오브젝트 파일을 nm(유닉스) 명령으로 실행하여 exit 함수가 호출된 지점을 찾을 수 있다.