본문 바로가기

Autohotkey강좌

Autohotkey #47. Notepad++로 Autohotkey 스크립트 디버깅하기

반응형

https://youtu.be/2jTpXz5jHSM

 

- YouTube

 

www.youtube.com

지난번에 SCITE4Autohotkey로 디버깅하는 방법에 대해 소개해 드렸는데, 이번에는 Notepad++로 디버깅하는 방법을 알려 드리겠습니다.

https://autohotkey4auto.tistory.com/5 에서 간략히 설명드린바와 같이 plugin을 설치하고 몇가지 단계를 거쳐야 합니다.

1) Autohotkey debugging용 plugin을 Notepad++ 에 설치하기

단순히 첨부 파일을 Notepad++설치폴더\plugin 아래에 복사하면 됩니다.

dbgpPlugin.dll
1.47MB

복사된 이후 Notepad++을 실행하면 plugin 메뉴 클릭시 -debugp메뉴가 생긴것을 볼 수 있다.

 2) plugin 초기 설정 수정

   Menu-플러그인-DBGp-config를 선택하면 팝업창이 뜨는데 거기서 다음 항목을 체크해 준다.

  "break at fist line when debugging starts"

  이 것을 선택하지 않으면 debugging을 시작하자 마자 바로 실행되므로 원하는 데서 세울수도 없어서

  debugging을 할 수 없다.

  설정 후에 Menu-플러그인-dbgp-debugger를 선택해 준다. 만약 하단에 DBGp로 시작되는 창이 뜨지 않으면 잘 못된 것이다.

3) 디버깅 메뉴 추가

가) Menu-Run(실행)-Run(실행)을 선택하면 조그만 팝업창이 뜬다.

 "..."을 클릭하여 오토핫키가 설치된곳에 오토핫키를 연결해 주거나 본인이 설치한 경로의 Autohotkey.exe와 연결해 준다.
기본으로 설치한 경우 :  "C:\Program Files (x86)\AutoHotkey\AutoHotkey.exe" /Debug $(FULL_CURRENT_PATH)
 본인이 개별로 설치한 경우 : C:\Autohotkey\Autohotkey.exe ( c:\autohotkey에 설치한 경우)
 
  나) 실행 디버깅 단축키 설정
   저장 버튼을 클릭하면 작은 팝업창이 뜬다. 여기서 단축키를 설정한다. 
   이름은 원하는대로 (예: Autohotkey Debug) 주고 단축키 선택은 CTRL(체크)+Alt(체크)+콤보박스에서 D등으로 본인이 좋아하는 키로 설정하고 OK를 눌러 저장한다.
   모든 팝업창을 닫고 메인 메뉴에서 실행을 클릭하면 아래에 단축키가 생성된 것을 볼 수 있고 실행할 수 있다.

디버깅 기능을 실행하기 전에 debugp 플러그인을 먼저 실행해야 실행이 가능하다.

(Menu-플러그인-DBGp-debugger선택)

실제로 실행시에 해당 경로를 인식 못 하다든지, 실행파일 경로가 길다던지, 실행파일 경로에 한글이름등이 포함될 경우 제대로 실행 안 될 수 있으므로 가급적 실행파일 경로는 영문으로만 작성하고 폴더명도 길지 않게 한다.

별문제가 없으면 아래처럼 정상적으로 실행되어야 한다.

 

3) 실제 디버깅 시작

가) Notepad++를 실행하고, 디버깅을 진행할 스크립트를 읽어온다.

나) Menu-플러그인-DBGp-debugger선택하여 하단에 debug메뉴창 떳는지 확인

다) Menu-실행-본인이 만들 실행메뉴명(예:Autohotkey debug)을 선택하여 debug시작

라) 첫라인의 좌측에 녹색 아이콘이 보이는지 확인

 마) 원하는 라인에 중단점(breakpoint)를 설정한다. 원하는 중단점 없이 step으로 진행하고 싶으면 좌하단의 step over나 step out을 선택하여 진행한다.

 바) 중단점까지 실행하고 싶으면 실행을 누른다.

 

 사) 원하는 값을 보려면 좌하단의 Watches윈도우에서 마우스 우클릭하여 원하는 변수명을 적는다.(대소문자 구분없음)

 아) 중지하려면 중지를 누른다.

 자) debugp에 기본으로 할당된 단축키가 Notepad++에 설정된 단축키와 충돌하므로 해당 내용을 수정하려면 

   Menu-실행-단축키 설정에 가서 원하는 단축키를 중복되지 않게 수정해 준다. 기본은 Notepad++에 설정된 단축키가 먼저 작동한다. 

 

step-into의 경우 직접 작성한 함수안으로 진행하고 step-over의 경우 함수호출을 수행하고 바로 복귀하며, step-out은 함수 밖으로 탈출한다. 적절히 사용하면 훌륭한 도구가 되므로 잘 익혀 놓으면 좋다. 

추가로 특정라인까지만 수행하고 싶을 경우 해당 라인에 커서를 두고, Menu-Plugins-dbgp-Run to를 선택하면 그 라인까지 실행한다.

SCITE와의 차이가 있다면 Call Stack은 보여주지 않는다. 다소 아쉬운 부분이라고 할 수 있지만, 대부분의 경우는 문제가 되지 않으므로 넘어가기로 한다.

실제로 본인이 작성한 스크립트가 정상적으로 동작하지 않을 때 해당 순간을 순차적으로 디버깅하다 보면 문제의 원인을 빨리 파악할 수 있어서 오류를 빨리 수정할 수 있으므로 적극적으로 사용해 보기를 권한다. 

 

반응형