GDB 사용 도중 중단점과 중단점 사이의 시간을 체크해보고 싶었다.

GDB의 내장 파이썬을 사용해 진행하였다. (따라서 GDB가 파이썬을 지원하지 않는다면 필자가 서술하는 방법은 사용할 수 없다.)

최종 결과물은 다음과 같이 보여졌다.

확실히 어디 중단점 간의 시간이 가장 많이 걸렸는지 체크할 수 있었다.

Untitled

우선 홈 디렉토리에 .gdbinit 파일을 생성한다

touch ~/.gdbinit

필자는 걸린 시간을 좀 더 깔끔하게 표시하고 싶어 TrueType 폰트 기준 깔끔하게 표시해주는 함수를 하나 생성하였다. 아래 코드는 첫 번째 결과값의 사진처럼 내용물을 사각형으로 표시하기 위해 공백 및 파이프라인 ( | ) 문자를 추가해주는 함수이다.

# SET TIMEIT FUNCTION =================================================
python import time
python line_str = "+=================================================+"
python line_str_len = len(line_str) - 1
python
def set_ti_line(ti_str, ed_len):
    ti_str_len = len(ti_str)

    for i in range(ti_str_len, ed_len):
        ti_str += ' '

    if (ti_str_len < ed_len):
        ti_str += '|'

    return ti_str
end

이후 continue 전후로 실행 결과를 출력하는 define을 정의한다.

필자는 ‘c’로 설정하였다.

GDB의 continue의 약자가 c이기 때문에 해당 define을 설정하면 c 입력 시 continue가 동작되는 것이 아닌 define된 값이 동작하게 된다.

이것 이 싫다면 define value를 변경해주면 된다.