2016-10-31 5 views
1

私はAndroidデバイス上で動作するはずのネイティブC++アプリケーションを持っています。起動時にアプリケーションがクラッシュします。ほとんどの場合、リンクされたライブラリから関数を呼び出すと発生します。私はgdbでデバッグしようとしていますが、成功することはできません。Android上でGDBを使ってネイティブアプリケーションをデバッグする

私はいくつかの任意に選んだポート(2000)上のAndroidデバイス上でgdbserverをし始めています:

[email protected]: gdbserver :2000 my_app 
Process my_app created; pid = 3420 
Listening on port 2000 

私は提供されたgdbで私のホスト・システム(Windows 7)で、このプロセスにアタッチしようとしていますAndroid-NDKでは

C:\> gdb 
(gdb) attach 3420 
Can't attach to process. 
(gdb) target remote :2000 
:2000: The system tried to join a drive to a directory on a joined drive. 

何が問題ですか?

EDIT: 前、私はADBを使用して、ポート2000を転送し、GDBを実行する:

adb forward tcp:2000 tcp:2000 

これは、少なくともいくつかの通信を確立するために私を助け、しかし:デバイス上で

(gdb) target remote :2000 
Remote debugging using :2000 
warning: Architecture rejected target-supplied description 
Remote 'g' packet reply is too long: 00000000000000000000000000000... 

側:

Listening on port 2000 
Remote debugging from host 127.0.0.1 
readchar: Got EOF 
Remote side has terminated connection. GDBserver will reopen the connection. 
Listening on port 2000 

答えて

0

あなたはおそらく異なるアーキテクチャ/バージョンのgdbを使用しています。あなたはGDBを起動すると、それは(私は私のGDBを示して何を示しています)のような行を表示します。

このGDBは、「--host = x86_64版 - のlinux-gnuの --target =アーム-Linuxのように構成されました-android "

これが携帯電話のアーキテクチャと一致するかどうかを確認します。
正しいGDBバージョンをダウンロードすると、問題が解決する場合があります。

関連する問題