출처 : https://opensource.com/article/20/6/debug-go-delve

 

이번 포스팅에서 다룰 내용은 디버거입니다.

저같은 초급자들에게는 없어서는 안될 아주 소중한 존재죠.

 

목차


    0. 디버거가 뭔데?

    먼저 Bug는 한국어로 벌레입니다.

    하지만 프로그래밍에서는 우리가 짠 코드에서 발생하는 의도하지 않은 문제Bug이라고 합니다.

    둘다 의도하지 않게 사람을 괴롭힌다는 점에서 공통점을 가지고 있네요. 모기 이녀석

     

    Bug를 발견하고 제거하는 작업을 Debugging(디버깅) 이라고 합니다.

    그리고 디버깅을 할 때 사용하는 도구를 Debugger(디버거)라고 부릅니다.

     

    현대적인 개발 도구(IDE)들은 내부적으로 디버거를 가지고 있습니다.

    사용법도 다 비슷하기 때문에 이클립스에서 쓰는 디버거를 배우면 다른 IDE에서도 그 IDE의 디버거를 쉽게 이해하실 수 있을 것입니다.

     

     


    1. 디버거 사용해보기!

    이제 실제로 이클립스의 디버거를 사용해 보겠습니다.

    어떤 코드를 분석하고 싶을 때 디버거를 사용하는 첫 번째 방법은 프로그램의 실행을 멈추는 것입니다.

    멈추고 싶은 곳에서 더블클릭하면 이 생기는데, 이 점을 브레이크 포인터라고 부릅니다.

    (다시 더블클릭하면 점이 사라집니다!)

     

     

    이렇게 브레이크 포인터를 걸어놓고 본격적으로 디버거를 사용해보도록 하겠습니다.

    위쪽 버튼중에 벌레모양의 디버그 버튼이 있습니다!

    이 버튼을 누르면 디버거를 실행할 수 있는데요,

     

    버튼을 누르면 Perspective를 바꾸겠냐는 말이 나옵니다.

    이 Perspective는 화면을 의미하는데요,

    Debug모드에 유용한 화면으로 바꿔주기 때문에 Switch를 누르는 것이 일반적입니다.

     

     

    이제 Switch를 누르면, 오른쪽이 원래 Outline이었는데, 새로운 창으로 바뀝니다.

    맨 앞에 있는 Variables창변수들이 어떤 값을 가지고 있는지에 대한 정보를 보여줍니다. (아래에서 확인 가능합니다!)

    그리고 빨간 네모친 부분에 벌레모양의 아이콘이 선택됩니다.

    이건 현재 디버그를 위한 Perspective상태라는 것을 의미합니다!

     

     

    이제 아까 브레이크 포인터까지 실행해보도록 하겠습니다.

    Resume라고 부르는 왼쪽 위의 재생버튼 비슷한 버튼을 눌러줍니다!

     

     

    그러면 쭉 실행되다가 브레이크 포인터를 만나면 그 앞에서 멈추게 됩니다!

    원 앞에 화살표가 붙는데, 현재 어느 지점까지 실행되었다는 이야기입니다.

     

     

    이제 한칸씩 이동해보겠습니다.

    버튼 중에서 부드럽게 턴하는 화살표모양의 Step Over라고 불리는 버튼이 있습니다.

    이 버튼을 누르면 한 줄씩 실행됩니다!

     

     

    다음 줄로 넘어가고, 오른쪽 변수에도 id에 JAVA APT 507이 할당된 것이 보이시죠!

    오른쪽 Variables창의 내용은 현재 메모리 상황을 나타냅니다.

     

     

    이번엔 hallLamp라는 Lighting이 어떻게 켜지는지를 확인하기 위해서 hallLamp.on()에다가 브레이크 포인터를 걸어줍니다.

    그리고 Resume 버튼을 눌러서 브레이크 포인트까지 진행합니다.

     

    코드 진행 상황 / 변수 사용 상황

     

    이제 on이라는 메소드가 어떻게 동작하는 것인지를 알고 싶을 수 있습니다.

    이럴 때는 아래로 향하는 직각으로 꺾인 화살표모양의 Step into 버튼을 눌러줍니다.

     

     

    그러면 우리가 import한 Lighting이라는 클래스로 이동하여 on이 어떻게 동작하는지를 보여줍니다.

    왼쪽 디버그 창에는 그 라인이 어디인지도 알려주네요!

     

     

    다시 돌아가고 싶을 때에는 위로 향하는 직각으로 꺾인 화살표인 Step Return 버튼을 눌러줍니다.

     

     

    그리고 21줄까지 실행된 코드의 결과물도 계속 Console에 업데이트 됩니다.

    21줄까지만 진행되었기 때문에 보안 해제까지만 진행된 모습이죠?

     

     

    작업이 끝났다면, 빨간색의 중지를 의미하는 Terminate 버튼을 눌러주시면 됩니다.

     

     

    이제 작업이 끝났으니, Perspective를 다시 원래 화면으로 돌리기 위해서는

    아까 오른쪽 위 구석에 있는 벌레 버튼을 다시 자바 버튼으로 바꿔줍니다.

     

     

    디버깅이 끝났습니다! 이제 여러분은 코드를 한 줄씩 실행하면서 어느 부분에 문제가 있는지 보다 쉽게 파악하실 수 있게 되었습니다!

     


    부끄러운 이야기이지만, 꽤 오랜 시간 C++과 파이썬을 사용했지만 이렇게 한 줄씩 확인해 가면서 디버깅을 한 적은 손에 꼽을 정도로 적습니다.

    그래서 방법도 잘 모르고 있었는데, 이번 기회에 디버거에 대해서 잘 알게 되었습니다.

    Visual Studio에서도 거의 동일한 방식으로 디버거가 작동하기 때문에, 잘 써먹어야 겠습니다 ㅋㅋㅋㅋㅋㅋㅋㅋ

     

    이제 다음 포스팅에서는 입출력에 대해서 더 자세하게 알아보도록 하겠습니다!

    읽어주셔서 감사합니다 🙂🙂

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기