2014년 1월 29일 수요일

android 단말 gdbserver 크로스컴파일

android 단말 gdbserver 크로스컴파일

망할 단말에서 gdbserver를 돌려보자.

규약


  • 단말에서의 실행문은 앞에 #을, pc에서의 실행문은 앞에 $를 붙인다. 


환경: 


  • You are using Ubuntu 11.04 - the Natty Narwhal - released in April 2011 and supported until October 2012.
  • 그지같은 보안으로 인해 apt-get 을 쓸 수 없는 환경. 
  • 그리고, 안드로이드를 풀빌드 할 수 있는 환경



GDB Server 의 크로스컴파일.

참고사이트: http://checko.soup.io/post/21071057/Cross-compile-GDB-6-8-for-Android

step1을 따라한다. 

wget으로 받되, gdb의 파일명을 다음과 같이 변경해야 받을 수 있다.
ftp://ftp.gnu.org/gnu/gdb/gdb-6.8.tar.gz --> ftp://ftp.gnu.org/gnu/gdb/gdb-6.8a.tar.gz

arm 크로스 툴 체인은 예제에 나온 대로 /usr/local/ 에 풀어두는 것이 나중에 스크립트를 그대로 실행하는 데 유리하다. 마찬가지로 wget으로 받는다.

그리고, 압축을 풀어놓았다면, 이제 PATH를 ~/.bashrc 에 추가해 둔다.

step2를 따라한다.

ncurses2를 설치하는데, 이는 "configure: error: no termcap library found" 를 없애기 위한 용도라고 하지만, 모든 설명대로 다 진행했음에도 불구하고 여전히 step1의 gdb를 컴파일할 때 같은 오류가 발생한다. 인터넷을 찾아보니, 우분투의 경우 libncurses5-dev를 설치하라고 나와 있다.
다음과 같은 방법으로 설치할 수 있다.

$ sudo apt-get install libncurses5-dev

그러나, gdb를 위한 라이브러리이기 때문에, gdbserver만 필요할 경우, 굳이 설치할 필요가 없다고 한다. 스킵해도 된다.

step3를 따라한다. 

위에 step2 를 따라할 때 처럼 에러 메시지가 나온다.  gdbserver만 컴파일하면 되기 때문에
'소스폴더/gdb/gdbserver'로 이동한다.
이동한 다음, step3에 적혀 있는  configure 와 make 명령을 수행해 준다.
gdbserver파일이 만들어 진다.

step4. 단말에 gdbserver를 복사

만든 파일을 다음과 같은 명령어로 복사해 둔다.

$ adb push ./gdbserver /system/bin


gdbserver의 실행


참고 사이트: http://techpedia.tistory.com/13
















댓글 없음:

댓글 쓰기