이번 시간에는 Autohotkey 설치할 때 기본으로 설치하도록 언급되는 SCITE4Autohotkey의 디버깅에 대해서 말씀 드리겠습니다. 기존에 Notepad++의 디버깅에 대해서 언급했습니다. 실제로 Notepad++의 디버깅이 좀 더 사용하기가 쉬운데 가끔씩 설치버전에 따라 특정 PC환경에서 동작되지 않는 경우가 있어서 기본에디터인 SCITE4Autohotkey의 디버깅에 대해서 알려드리겠습니다.
1. 설치
먼저 설치가 안 되어 있다면 아래 링크에서 다운받아서 설치하시기 바랍니다.
https://fincs.ahk4.net/scite4ahk/
기본으로 설치되는 폴더는 Autohotkey폴더 아래입니다. 그대로 확인하고 설정하면 설치가 완료됩니다.
2. 디버깅
설치가 되었다면 이제 디버깅을 해 보겠습니다. 디버깅을 원하는 스크립트를 열고 디버깅을 시작하려면 아래 버튼을 누르거나 F7을 눌러 줍니다. 그러면 아래버튼이 그 다음 이미지로 바뀝니다. 디버깅이 시작되었다는 의미입니다.
디버깅 시작하기 위해 누르는 아이콘 :
디비깅 시작을 의미하는 아이콘 :
이제 본격적으로 디버깅을 하기 위해서 아래 아이콘을 클릭합니다.(또는 F10)
그러면 아래처럼 한줄씩 실행이 됩니다. 1라인 옆에 하늘색 삼각형이 보이시죠? 현재 실행할 라인이라는 뜻입니다.
한번 더 F10을 눌러 봅니다. 다음 라인으로 넘어갔다면 정상적입니다.
이제 F10옆의 아이콘을 보면 무엇이 보이나요?
Run until next line of code(F11)입니다. 일반적으로는 F10과 차이가 없습니다. 이 기능에 대해서는 나중에 더 확인하고 알려 드리겠습니다. 다음으로는 Run until function/Label exit(Shift F11) 입니다.
통상적으로 특정 함수나 Label에 진입해서 웬만큼 동작을 확인한 후에 원래 호출된쪽으로 복귀하고자 할 때 사용합니다.
이렇게 F10, F11, Shift F11로 Step단위로 진행하는 방법으로는 작은 프로그램을 디버깅하는데 유용하지만, 작성한 스크립트가 몇만 라인이라면 일일이 실행하는게 무리가 됩니다. 그래서 본인이 원하는 소스 라인까지 실행하도록 중단점(BREAKPOINT)을 설정하는 게 필요합니다. 방법은 간단합니다. 원하는 라인에 가서 해당 라인 번호가 나오는 경계 부분을 마우스로 클릭해 주면 빨간 원이 생기면서 중단점이 설정됩니다.
이렇게 원하는 지점에 중단점이 설정되면 실제로 그 라인까지 실행되도록 해야겠죠? 바로 아래 아이콘을 눌러줍니다.
Run script (F5) 입니다. 즉 중단점이 나올때까지 진행하는 것입니다. 스크립트를 순차적으로 진행하다가 만약 중단점이 나오면 바로 정지하겠지만, 특정한 조건에만 중단하도록 중단점을 설정해 놓았다면 해당 조건이 만족할 때까지 실행될 것입니다.
다음은 원하는 변수의 값을 확인하는 방법을 알려 드리겠습니다.
실제로 특정 중단점에서 실행이 멈췄을 때 특정 변수값을 확인하려면 어떻게 해야 할까요?
가장 간단한 방법은 해당 변수에 마우스를 올려 놓고 있으면 해당 변수의 값을 보여줍니다. 하지만 매번 그렇게 하는 방법이 번거로울 수 있습니다. 해당 변수만 단독으로 보기 위해서는 해당 변수 위에서 마우스 우클릭하여 Inspect variable을 선택해 주면 됩니다. 그러면 아래처럼 해당 변수만 관찰할 수 있습니다.
그런데 이 방법은 단독변수만 볼 수 있으므로 그다지 유용하지 않습니다. 원하는 변수를 모두 보기 위해서는 아래 아이콘을 눌러 줍니다.
Variable List입니다. 아래와 같이 보여집니다.
모든 변수가 보이므로 원하는대로 변수가 변동되는지 확인할 수 있습니다.
다음으로 현재 진행중인 내용이 어떤 flow로 진행되었는지 어떻게 알 수 있을까요? 바로 call stack을 확인하면 됩니다.
예를 들어 아래와 같은 call stack이 보였다면 어떤 내용으로 해석이 될까요?
Shuffle.ahk의 Gui thread 33라인에서 34라인에 있는 ButtonGenerate라는 함수가 호출이 되었다는 내용이 되는데 33라인은 버그처럼 생각됩니다. 여기는 불리운 단계가 1단계라서 간단하지 복잡한 call stack을 분석할 때는 유용할것입니다.
오늘 언급한 내용중에서 중단점에 대한 개념을 잘 이해하시기 바랍니다. 모든 SW개발은 디버깅을 얼마나 잘 하느냐에 따라 실력이 판가름난다고 해도 과언이 아닙니다. 연습을 많이 해서 언제든지 디버깅을 능숙하게 할 수 있도록 해 보시기 바랍니다. 실력자가 되기 위한 지름길을 잘 닦으시기 바랍니다.
궁금한 내용이나 질문은 댓글로 달아 주세요.
오늘도 행복하기 바랍니다.
'Autohotkey강좌' 카테고리의 다른 글
Autohotkey #24, Autohotkey파일을 실행파일로 만들기 (0) | 2020.12.14 |
---|---|
2021년형 일일업무일지를 만드는 엑셀 매크로-Excel macro making Daily report for 2021 (0) | 2020.12.01 |
Autohotkey 21, 윈도우 예약 자동 종료 프로그램(AutoPowerDown) (1) | 2020.08.22 |
Autohotkey 20. 교사들 학기말 필수 작업인 평어 입력 어플 (0) | 2020.08.09 |
Autohotkey 19. 간단한 한글TTS(Text To Speech) 프로그램 만들기 (0) | 2020.07.27 |