본문 바로가기

프로그래밍/Android

GDB 기본환경

 

1. 에뮬레이터 tcp 리다이렉션 설정

호스트에서 텔넷으로 에뮬로 접속한다. 열려진 초기 기본 텔넷 포트는 5554

 

$ telnet localhost 5554

 

에뮬레이터로 telnet 접속이 되는데, 몇가지 명령을 줄 수 있다.

우린 리다이렉션 설정을 해야 하므로 아래와 같이 입력하낟.

 

redir add tcp:1234:1234

 

tcp 포트 1234 를 1234로 리다이렉션 한다~

 

exit 로 telnet 종료

 

2.  gdbserver 에뮬레이터에 복사한다.

각 툴체인 디렉토리를 보면 플랫폼별로 디렉토리가 구분되어 있는 것을 볼 수 있다.

 android/prebuilt/android-arm/gdbserver/ 디렉토리에 gdbserver 바이너리가 보인다.

요넘을 에뮬레이터에 밀어 넣는다.

 

$ cd ~/android/prebuilt/android-arm/gdbserver/gdbserver

$ adb push ./gdbserver .

 

3. 어플리케이션을 빌드해서 역시 push

 

4. 서버 실행

$ adb shell

$ gdbserver 10.0.2.2:1234 /data/my_sample

 

5. 다른 터미널을 이용해 클라이언트 실행

$ arm-eabi-gdb my_sample

# target remote localhost:1234

 

접속시 호스트의 바이너리 위치에서 실행해야 한다. 기타 라이브러리 폴더등 몇가지 설정해야함.

# set solib-search-path ../path info

# set solib-absolute-path ../path info