상위 수준 애플리케이션 디버그
Important
Azure Sphere(레거시) 설명서입니다. Azure Sphere(레거시)는 2027년 9월 27일에 사용 중지되며 사용자는 이 시간까지 Azure Sphere(통합)로 마이그레이션해야 합니다. TOC 위에 있는 버전 선택기를 사용하여 Azure Sphere(통합) 설명서를 볼 수 있습니다.
장치가 USB로 PC에 연결되어 있는지 확인합니다. 시작 항목 설정 메뉴에서 Azure Sphere 앱이 현재 상위 수준 애플리케이션의 이름인 Azure SPHERE 앱(HLCore)을 선택하거나 F5 키를 누릅니다.
프로젝트를 빌드하라는 메시지가 표시되면 예를 선택합니다. Visual Studio는 애플리케이션을 컴파일하고, 이미지 패키지를 만들고, 보드에 테스트용으로 로드하고, 디버그 모드에서 시작합니다. 테스트용 로드 는 애플리케이션이 클라우드를 통해 전달되지 않고 유선 연결을 통해 PC에서 직접 전달됨을 의미합니다.
뷰>출력 표시 출력>에서 이미지 패키지의 이미지 ID를 기록해 둡니다. 빌드 출력. 자습서: 클라우드 배포 만들기의 뒷부분에서 이미지 ID를 사용합니다.
기본적으로 출력 창에는 디바이스 출력의 출력이 표시됩니다. 디버거의 메시지를 보려면 다음 드롭다운 메뉴에서 출력 표시에서 디버그를 선택합니다. 디버그>창 메뉴를 통해 프로그램 디스어셈블리, 레지스터 또는 메모리를 검사할 수도 있습니다.
그런 다음 Visual Studio 디버거를 사용하여 중단점을 설정하고, 일시 중지하고, 한 단계씩 실행하거나, 한 단계씩 실행하거나, 다시 시작하거나, 애플리케이션을 중지할 수 있습니다.
C 소스 코드의 중단점에서 중지되는 동안 현재 주소, 현재 명령에 대한 어셈블러 니모닉 및 관련된 레지스터 또는 실행 중인 소스 코드 명령과 같은 정보를 표시하는 디스어셈블리 창을 열 수 있습니다.
디스어셈블리 창을 열려면:
- 중단점이 포함된 C 코드 소스 파일이 Visual Studio에서 열려 있는지 확인합니다.
- Windows>디스어셈블리 디버그>를 선택하거나 Alt+8을 누릅니다.
F5 키를 눌러 프로젝트를 빌드하고 디버그합니다. 프로젝트가 이전에 빌드되지 않았거나 파일이 변경되고 다시 빌드가 필요한 경우 Visual Studio Code는 디버깅을 시작하기 전에 프로젝트를 빌드합니다.
Visual Studio Code가 애플리케이션을 빌드하고, 이미지 패키지를 만들고, 보드에 배포하고, 디버그 모드에서 시작할 때까지 몇 초 정도 기다립니다. 그 과정에서 출력 창에 상태 업데이트가 표시됩니다.
먼저 CMake는 애플리케이션을 빌드해야 하는지 여부를 결정합니다. 이 경우 CMake/Build의 출력을 표시하는 출력 창으로 포커스가 이동합니다.
다음으로, 이미지 패키지가 디바이스에 배포될 때 출력 창에 결과가 표시됩니다. 마지막으로 디버그 콘솔은 포커스를 받고 디버거 출력을 표시합니다.
Visual Studio Code 디버거를 사용하여 중단점 설정, 일시 중지, 단계별 실행, 단계별 실행, 다시 시작 또는 애플리케이션 중지를 수행합니다.
C 소스 코드의 중단점에서 중지되는 동안 현재 주소, 원시 16진수 데이터, 현재 명령에 대한 어셈블러 니모닉 및 관련된 레지스터 또는 실행 중인 소스 코드 명령과 같은 정보를 보여 주는 디스어셈블리 보기를 열 수 있습니다.
디스어셈블리 보기를 열려면:
- 중단점이 포함된 C 코드 소스 파일이 Visual Studio Code 편집기에서 열려 있는지 확인합니다.
- 편집기 창을 마우스 오른쪽 단추로 클릭하고 디스어셈블리 보기 열기를 선택하거나 명령 팔레트>열기 디스어셈블리 보기 보기를> 선택합니다.
애플리케이션을 디버그하려면 애플리케이션을 중지한 다음 디버깅을 사용하여 다시 시작합니다.
azsphere device app stop --component-id <ComponentId>
azsphere device app start --debug-mode --component-id <ComponentId>
다음과 같은 결과가 표시됩니다.
<ComponentID>
App state : debugging
GDB port : 2345
Output port : 2342
Core : High-level
Command completed successfully in 00:00:00.9121174.
명령 프롬프트를 열고 Windows 터미널 클라이언트 를 사용하여 텔넷 또는 원시 TCP 연결을 설정하여 프로세스에서 출력 스트림을 읽습니다. IP 주소로 192.168.35.2를 지정하고 포트로 2342를 지정합니다.
PowerShell, Windows 명령 프롬프트 또는 Linux 명령 셸을 사용하여 명령줄 인터페이스를 엽니다. gdb 명령줄 디버거를 시작합니다.
Windows 명령 프롬프트
"C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb.exe" IntercoreComms_HighLevelApp.out
Windows PowerShell
& "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb.exe" IntercoreComms_HighLevelApp.out
참고 항목
Azure Sphere SDK는 애플리케이션 런타임 버전, sysroot 및 베타 API에 설명된 대로 애플리케이션이 다른 API 집합을 대상으로 할 수 있도록 여러 sysroot를 제공합니다. sysroot는 Sysroots에 있는 Azure Sphere SDK 설치 폴더에 설치됩니다.
포트 2345에서 원격 디버깅 대상을 IP 주소 192.168.35.2로 설정합니다.
target remote 192.168.35.2:2345
선택한 모든 gdb 명령을 실행합니다. 예시:
break main
c
break
및c
명령은 main()에 진입할 때 중단점을 설정한 다음 중단점 이후에 각각 실행을 계속합니다. gdb에는 수많은 문서 원본을 사용할 수 있습니다.