이클립스에서 C/C++ 소스에 브레이크 포인트(break point)를 설정하여 디버거에서 변수의 값을 확인하는 방법을 살펴보겠다. 안드로이드 SDK, CDT 플러그인 등 기본적인 도구들은 이미 설치되어 있다고 가정한다.


Native 코드(C/C+)에 대한 디버깅을 하려면 다시 별도의 플로그인을 설치해야 한다. 여러가지 플러그인이 있는데 여기서는 많이 사용되는 두 가지 플러그인을 소개한다.


먼저 ADT(Android development tools)에 포함된 NDK 플러그인을 이용한 방법이다. 해당 플러그인을 설치하려면 이클립스 메뉴에서 Help -> Install New Software를 선택한다. 그리고 work with: 옆에 있는 콤보 박스에 ‘https://dl-ssl.google.com/android/eclipse/’를 입력한다. 표시되는 아이템들 중에서 ‘NDK plugins’를 선택하고 안내에 따라 설치한다.


<그림> NDK플러그인 설치


이제 NDK 설치 경로가 이클립스에 정상적으로 설정되어 있는지 확인한다. 이클립스 환경설정(Preferences) 창을 띄운 뒤, 좌측 메뉴에서 Android -> NDK 를 선택한다. 여기서 NDK Location 이 올바르게 설정되어 있는지 확인한다.


<그림> NDK 설치 경로 설정


다음으로 프로젝트를 선택한 뒤 마우스 오른쪽 버튼을 누른다. 팝업 메뉴에서 ‘Android Tools’ -> ‘Add native support’ 를 선택한다. <그림8>과 같은 팝업창이 나타나면 Finish 버튼을 누른다.


<그림> Add native support


만약 C/C++ 소스 파일들을 이미 프로젝트에 추가했다면 이 과정은 생략한다. 아마도 ‘Add native support’ 메뉴 자체가 나타나지 않을 것이다.


위의 작업들을 모두 완료했다면 이클립스 메뉴에서 Procjet -> Build All 을 선택해서 프로젝트를 빌드한다. 이제 C/C++ 코드에 브레이크 포인트를 설정하고 디버깅을 진행할 수 있게 됐다.


<그림> C/C++ 코드에 브레이크 포인트 설정


두번째로 살펴볼 플러그인은 그래픽 처리 장치로 유명한 Nvidia사에서 만든 NVIDIA Debug Manager 플러그인이다. 해당 플러그인은 Nvidia 개발자 사이트의 Tegra Resources 페이지에서 다운로드 받을 수 있다. 페이지 주소는 다음과 같다. 


Tegra Resources: https://developer.nvidia.com/tegra-resources#tools


단, 파일을 다운로드 받기 위해서는 Nvidia 계정을 생성하고 Tegra Registered Developer Program 에 가입해야 한다. 모두 무료다. 해당 페이지에서 Tegra Android Deveoper Pack을 다운로드 받은 뒤, 설치 과정에서 NVIDIA Debug Manager 플러그인만 선택해서 설치한다. 참고로 NVIDIA Debug Manager 플러그인은 Tegra 칩을 사용하지 않은 기기에서도 잘 작동한다.


NVIDIA Debug Manager 플러그인의 특징과 설치 방법에 대한 보다 자세한 정보는 아래 페이지를 참조하기 바란다.


NVIDIA Debug Manager for Android NDK: https://developer.nvidia.com/nvidia-debug-manager-android-ndk


플러그인 설치를 완료하고 디버깅을 시작하려면 이클립스에서 프로젝트를 선택한 뒤, 마우스 오른쪽 버튼을 클릭을 한다. 그리고 Debug as -> Android NDK Application 을 선택한다. ‘Android NDK Application’ 메뉴는 NVIDIA Debug Manager 플러그인을 설치해야만 나타난다.


<그림> Android NDK Application 디버깅



<참고 사이트>

http://tools.android.com/recent/usingthendkplugin

http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started


저작자 표시
신고
Posted by 가리봉맨