디버거 클라이언트
추가 디버깅 특징은 DBGp를 통하여 지원합니다. DBGp는 프로그래밍 언어와 사용자 사이의 디버거 UI 통신을 위한 공통 디버거 프로토콜입니다. 더 자세한 것은 상호대화 디버깅을 참조하십시오. 오토핫키와 호환된다고 알려진 "클라이언트"를 이 페이지에 나열 합니다.
SciTE4AutoHotkey
SciTE4AutoHotkey는 무료의, SciTE-기반의 AutoHotkey 스크립트 편집기입니다. DBGp 지원 외에도, 구문 강조, 콜팁/매개변수 정보 그리고 자동 완성, 그리고 기타 유용한 편집 특징과 스크립팅 도구를 지원합니다.
디버깅 특징은 다음과 같습니다:
- 정지점 설정.
- Run, Step Over/Into/Out.
- 호출 스택 보기.
- 전역/지역 영역에 있는 변수의 이름과 내용 보여주기.
- 변수에 마우스를 올리면 내용을 보여줍니다.
- 변수 내용 들여다 보기와 편집하기.
- 객체의 구조 보기.
http://fincs.ahk4.net/scite4ahk/
XDebugClient
XDebugClient는 간단한 오픈 소스 전방 DBGp 클라이언트로서 .NET Framework 2.0에 기반하고 있습니다. XDebugClient는 원래 Xdebug로 PHP를 위해 설계되었지만, AutoHotkey와 호환되도록 맞춤 빌드를 하였습니다.
변경:
- 디버거 엔진이 "php" 말고 다른 언어를 보고할 수 있습니다.
- AutoHotkey 구문 강조가 추가되었습니다.
- 디버거 엔진으로부터의 접속을 자동으로 기다립니다. 사용자가 Start Listening을 클릭하기를 기다리지 않습니다.
- 첫 번째 널-문자에서 특성 값들을 잘라내 버립니다. 왜냐하면 오토핫키는 현재 전체 변수의 내용을 돌려주고 그리고 XDebugClient는 이진 내용을 보여줄만한 적절한 인터페이스가 없기 때문입니다.
내려받기: 이진파일; 소스 코드 (다음도 참조 SharpDevelop, Dockpanel 모듬 그리고 Advanced Treeview.)
사용법:
- XDebugClient를 기동한다.
- AutoHotkey /Debug를 기동한다. XDebugClient는 자동으로 스크립트 파일을 열어준다.
- 왼쪽 여백을 클릭해 적어도 한 개의 정지점을 클릭한다.
- Run을 Debug 메뉴에서 선택하거나, F5를 누른다.
- 실행이 정지점에 도달하면, Debug 메뉴나 단축키를 사용하여 단계별로 디버깅을 하거나 아니면 스크립트를 재개한다.
특징:
- 구문 강조, 소스 코드 읽기 전용 보기.
- 정지점.
- Run, Step Over/Into/Out.
- 호출 스택 보기.
- 변수 검사 - 변수 이름을 선택, 우클릭, 검사.
문제:
- 스크립트가 실행 중인 동안 사용자 인터페이스가 사용자 입력에 응답하지 않는다.
- 변수를 나열하거나 값을 설정하는 메커니즘을 제공하지 않는다.
Notepad++ DBGp 플러그인
Notepad++의 플러그인으로 사용할 수 있는 DBGp 클라이언트가 있습니다. PHP 용으로 디자인되었지만, AutoHotkey와도 잘 작동합니다.
내려받기: Notepad++ 플러그인 디렉토리를 참조하십시오.
사용법:
- Notepad++을 기동한다.
- DBGp 플러그인의 환경을 구성한다: Plugins, DBGp, Config...
주의: 반드시 File Mapping을 구성해야 한다. 대부분의 사용자는 원격으로 디버깅하지 않는다. 그러므로 그냥 Bypass all mapping (local windows setup) 옆에 체크표식를 두면 된다.
- 도구바나 Plugins, DBGp, Debugger를 통하여 디버거 판을 보여준다.
- 디버그할 스크립트 파일을 연다.
- 적어도 하나의 정지점을 설정한다.
- AutoHotkey /Debug를 기동한다.
- 디버거 툴바나 단축키를 사용해 디버거를 제어한다.
특징:
- 사용자가 구문 강조를 선택
- 정지점.
- Run, Step Over/Into/Out, Run to cursor, Stop.
- 지역/전역 변수 보기.
- 사용자-지정 변수 감시.
- 호출 스택 보기.
- 변수에 마우스를 올리면 내용을 보여줌.
- 사용자-구성 단축 키 - Settings, Shortcut Mapper..., Plugin commands.
문제:
- 단일 문자 변수 이름 위에 마우스를 올려도 작동하지 않습니다. - 예를 들면, "a"에 올리면 " a" 또는 "a "를 시도합니다.
- 텍스트 위에 올리면 그 텍스트에 무효한 문자가 들어 있어도 상관하지 않고 변수를 열람하려고 시도합니다.
- property_get이 실패하면 Notepad++가 불안정해집니다. 이것은 위의 사실에 비추어 보면 특히 문제가 됩니다. 우회책으로써, AutoHotkey는 존재하지 않는 또는 무효한 변수를 요구받으면 에러 코드 대신에 빈 특성을 전송합니다.
스크립트-기반의 클라이언트
스크립트-기반의 DBGp 라이브러리와 예제 클라이언트는 GitHub에서 얻을 수 있습니다.
- dbgp_console.ahk: 간단한 명령어 줄 클라이언트.
- dbgp_test.ahk: 비동기적 디버깅 데모.
- dbgp_listvars.ahk: 실행 중인 모든 스크립트의 값을 나열해 보여주는 예제 클라이언트.
GitHub: Lexikos / dbgp
명령 줄 클라이언트
명령 줄 클라이언트는 xdebug.org에서 얻을 수 있습니다. 그렇지만 이것은 대부분의 사용자에게 알맞지 않습니다. 왜냐하면 DBGp (프로토콜)를 깊이 이해하기를 요구하기 때문입니다.
기타
수 많은 DBGp 클라이언트가 있지만, AutoHotkey와 테스트해 보지 않았습니다. 자세한 목록은 Xdebug: 문서를 참조하십시오.