Linux

[Unix] Unix dbx 명령어 사용 방법

IT-PAPA 2023. 11. 23. 06:57
728x90
반응형

dbx는 UNIX 및 UNIX 계열 운영 체제에서 디버깅을 위한 명령 줄 디버거입니다. 

dbx를 사용하여 C, C++ 및 기타 언어로 작성된 프로그램을 디버그할 수 있습니다. 

아래는 dbx 명령어를 사용하는 기본적인 방법입니다:

프로그램 실행 및 디버깅:

# 여기서 [프로그램명]은 디버깅하려는 실행 파일의 이름입니다.
dbx [프로그램명]


프로그램 시작:

# 디버깅 프로세스를 시작합니다.
start


중단점 설정:

# [함수명]은 중단점을 설정하려는 함수의 이름입니다.
stop in [함수명]


프로그램 실행:

# [인수]는 프로그램에 전달할 명령행 인수입니다.
run [인수]


중단점으로 이동:

# 실행을 중단점에서 중단합니다.
cont


변수 값 확인:

# [변수명]은 확인하려는 변수의 이름입니다.
print [변수명]


스택 트레이스 확인:

# 현재 호출 스택의 상태를 표시합니다.
where


단계별 실행:

# 코드를 한 단계씩 실행하며 디버깅합니다.
step


중단점 제거:

# 현재 중단점을 제거합니다.
delete


디버깅 종료:

# dbx를 종료합니다.
quit

 

dbx 를 사용한 core 덤프 파일 디버깅 방법 예시

  1. 먼저 dbx를 사용하여 프로그램 실행 파일과 함께 core 덤프 파일을 로드합니다. 먼저 프로그램 실행 파일을 실행합니다. 예를 들어:여기서 [프로그램명]는 디버깅하려는 실행 파일의 이름이고 core는 core 덤프 파일의 이름입니다. 또한 core 덤프 파일이 현재 디렉토리에 있어야 합니다.
  2. dbx [프로그램명] core
  3. 덤프 파일이 로드되면 dbx가 오류가 발생한 지점으로 이동합니다. 이 시점에서 오류를 분석하고 디버깅할 수 있습니다.
  4. 오류 정보를 얻기 위해 다음 명령을 사용합니다:
    • where: 현재 호출 스택을 표시하여 오류가 발생한 함수 및 호출 경로를 확인할 수 있습니다.
    • up 및 down: 호출 스택에서 이동하며 다른 호출 스택 프레임으로 이동할 수 있습니다.
    • list: 현재 소스 코드의 일부를 표시하여 오류가 발생한 지점에서 주변 코드를 확인할 수 있습니다.
    • print [변수명]: 오류와 관련된 변수의 값 확인.
  5. 오류를 해결한 후 프로그램을 다시 컴파일하고 실행하여 오류가 수정되었는지 확인합니다.
  6. 필요한 경우 반복적으로 디버깅 프로세스를 실행하여 오류를 해결합니다.

dbx를 사용하여 core 덤프 파일을 디버깅하는 것은 프로그램이 비정상 종료하고 덤프 파일을 생성한 경우 유용합니다. 이를 통해 오류의 원인을 파악하고 수정할 수 있습니다.

 
 
 
728x90
반응형
LIST