2011-08-04 6 views
0

오픈 소스 안드로이드 OS를 구축하고 실행할 때 중단 점을 배치하고 코드 스택을 통해 호출 스택을 볼 수 있기를 바랍니다. 또한 Dalvik VM 내에서 디버그 할 수도 있습니다. OS는 make를 사용하여 빌드되었으므로 gdb를 사용해야한다. 나는 이것을 수행하는 방법에 대한 최신 지침 만 찾아 낼 수있었습니다. 누구든지 안드로이드 OS 내에서 디버깅을 관리했거나, 이것에 대한 최신 지침을 찾았습니까?Android 오픈 소스 OS 디버깅

답변

1

루트 (에뮬레이터에서 정상적인 경우, dev 폰에서 가능하거나 소비자의 보안 구멍을 통해 가능)로 실행중인 경우 거의 모든 이미 실행중인 사용자 공간 프로세스에 gdb (실제로는 gdbserver)를 첨부 할 수 있습니다. 많은 시간이 유용한 시간 동안 일시 중지되는 경우가 많지 않을 수 있습니다.

루트로 실행하지 않는 경우 gdbserver를 실행하도록 설득 할 수있는 사용자로 실행되는 프로세스 만 디버깅 할 수 있습니다. 즉, adb로 시작한 프로세스 또는 실행중인 응용 프로그램의 run-as 도구 응용 프로그램 프로세스를 사용하여 디버깅 할 수 있습니다. 디버그 플래그가 설정된 상태로 구축되었으며 인터넷 권한이 있습니다 (gdb-gdbserver 통신의 경우).

커널을 디버깅하려면 kgdb를 작동시키는 방법을 알아 내거나 재미있는 곳에서 printk를로드하는 것이 더 필요합니다. 물론 커널을 다시 빌드하고 다시 설치해야합니다.

+0

흠 thx! 빌드 구성에 '사용자 디버그'가 지정되어 있으면 문서에서 루트 액세스 권한을 제공함을 나타냅니다. 잘하면이 작품 (그렇지 않으면 내 전화를 루팅하지 않은 ..). –

0

에뮬레이터를 사용하지 마십시오. 귀중한 시간을 낭비합니다. Android 휴대 전화를 사용하면 빠르고 쉽게 디버깅 할 수 있습니다.

+0

고마워, 네, 전화가있어.하지만 어떻게 그걸로 디버깅을 설치 해야할지 모르겠다. –

0

확실히.

Eclipse IDE를 사용하는 한 쉽습니다. 디버그에서 프로그램을 실행하고 DDMS 탭으로 가야합니다. 당신을 도울 것입니다

일부 링크 :

http://www.droidnova.com/debugging-in-android-using-eclipse,541.html

http://developer.android.com/guide/developing/debugging/index.html

편집 : 난 당신이 다운로드하고 목적을 위해 안드로이드 소스를 컴파일해야 할 것 같아요. 이 링크는 아마도 도움이 될 것입니다 : http://source.android.com/source/initializing.html

+0

팁 주셔서 감사합니다 -하지만, 안드로이드 OS 자체 및 잠재적으로 Dalvik VM 내에서 응용 프로그램을 디버깅하고 싶지는 않지만. 나는 OS를 만들기 위해 'make'를 사용한다. 그래서 나는 gdb를 사용할 필요가 있다고 생각하지만, 어떻게 확신 할 수 있는가? –

+0

답을 편집하여 도움이 되었기를 바랍니다. – pandre

+0

감사합니다. 실제로이 지점을 이미 통과했지만. 난 그냥 디버거를 첨부하는 방법을 알아낼 필요가 :) –

0

데스크톱 상황에 따라 다르지만, 에뮬레이터는 emulator RAM을 늘려서 향상시킬 수 있습니다. 그것은 좋지는 않지만 개선 될 것입니다.

장치에서 디버깅하려면 USB 케이블을 사용하여 컴퓨터에 연결하십시오. Eclipse를 통해 프로젝트를 실행하면 실행할 장치/에뮬레이터를 묻는 메시지가 표시되며,이 경우 장치를 선택할 수 있습니다. 그런 다음 디버그 퍼스펙티브로 전환합니다.

+0

팁을 주셔서 감사합니다,하지만 안드로이드 OS 자체 및 잠재적으로 Dalvik VM 내에서,하지만 응용 프로그램을 디버깅하고 싶지 않다. 나는 OS를 만들기 위해 'make'를 사용하기 때문에 gdb를 사용해야하지만 어떻게 설정해야하는지 모르겠습니다. 팁을위한 –