lldb의 간단한 사용방법을 순서대로 알아보려한다.
g++ -g my_source_file.cpp -o my_program
위와 같이 컴파일 flag를 붙여주게 되면, 컴파일 과정에서 디버깅 정보를 포함하게 된다. 이로써 가능한 동작들은 아래와 같다.
이 와 같이 디버깅에 유용한 정보가 포함되기 때문에 컴파일시 이를 포함하여 진행한다.
lldb my_program
b main(함수) 또는 b 39(line을 나타냄)
run
continue(다음 루틴 실행) 또는 n(다음 라인 실행)
break point를 없애고 싶다면 아래 명령어 사용한다.
breakpoint list (해당 명령을 통해서 리스트 확인)
breakpoint delete 1 (포인트 번호로 삭제)
breakpoint delete (모든 포인트 삭제)
보통은 아래와 같이 줄여서 사용한다.
b del
lldb를 통해 직접적으로 해당 코드의 영역을 알 수 없기 때문에, 간접적으로 확인하는 방법을 간단하게 알아보려한다.
image dump sections
명령어를 사용해서 데이터, 텍스트 영역을 확인할 수 있다. 명령어 실행시 뒤에 실행파일을 넣어주면 해당 파일의 섹션만 볼 수 있다.bt
명령으로 스택 프레임 목록을 확인하고 첫 번째에서 마지막 프레임 사이에 있다면 스택 영역에 속할 가능성이 높다.print, disassemble, memory read 총 3가지 명령어들을 간단하게 알아보겠다.