2011-08-04 4 views
0

私は、オープンソースのAndroid OSをビルドして実行しているときに、ブレークポイントを配置し、コールスタック、ステップスルーコードを表示したいと考えています。また、Dalvik VM内でデバッグしたいと思っています。 OSはmakeを使ってビルドされているので、gdbを使う必要があります。私はこれをどうやって行うのかについての古い指示しか見つけられませんでした。誰でもAndroid OS内でデバッグできましたか、これについての最新の説明がありますか?AndroidオープンソースOSのデバッグ

答えて

1

rootとして実行している場合(エミュレータでは通常のケース、開発者の電話機では可能、消費者のセキュリティホールでは可能です)、gdb(実際にはgdbserver)を実行中のほとんどのユーザスペースプロセスに接続できます。多くのことが、何らかの有用な時間の間中断されるように反応しないかもしれないことに注意してください。

rootで実行していない場合は、gdbserverを実行すると思われるユーザーとして実行されているプロセスのみをデバッグできます。つまり、adbで起動したプロセスや、デバッグフラグが設定された状態でビルドされ、インターネット許可が与えられています(gdb-gdbserver通信用)。

カーネルをデバッグするには、kgdbの動作方法を理解するか、興味深い場所にprintkをロードする方がよいでしょう。もちろん、カーネルを再構築して再インストールする必要があります。

+0

のhmのthx!私のビルド構成で 'user debug'が指定されている場合、ドキュメントにはこれがルートアクセスを提供することが示されます。うまくいけば、これは動作する(そうでなければ、私の電話を根っこんでいない..)。 –

0

エミュレータを使用しないでください。貴重な時間を無駄にします。 アンドロイド携帯電話を入手すると、デバッグはあなたが好きなほど速くて簡単になります。

+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

EDIT: 私はあなたがあなたの目的のためのAndroidのソースをダウンロードしてコンパイルする必要がありますね。 http://source.android.com/source/initializing.html

+0

アドバイスをいただきありがとうございます - 私はアプリケーションをデバッグするつもりはないが、Android OS自体、および潜在的にはDalvik VM内でデバッグする予定はありますが。私はOSを構築するために 'make'を使うので、gdbを使う必要があると思いますが、どうしたらよいかわかりません。 –

+0

回答を編集しました。あなたに役立つことを願っています。 – pandre

+0

ありがとう、私は実際にこの点をすでに通過していますが。私はちょうどデバッガを添付する方法を理解する必要があります:) –

0

これはデスクトップの状況によって異なりますが、emulator RAMを増やすことでエミュレータを改善することができます。それは素晴らしいことではありませんが、改善されます。

デバイスでデバッグするには、USBケーブルでコンピュータに接続します。 Eclipseを使用してプロジェクトを実行すると、実行するデバイス/エミュレータのプロンプトが表示されます。その場合は、携帯電話を選択します。デバッグパースペクティブに切り替えます。

+0

私はアプリケーションをデバッグするつもりはないが、Android OS自体、および潜在的にDalvik VM内で、ヒントをありがとう。私はOSをビルドするために 'make'を使うので、gdbを使う必要があると思うが、セットアップ方法はわからない。ヒントのための –

関連する問題