Eclipse& Seqoyah - 尝试在设备上启动应用程序之前连接到gdbserver

时间:2011-09-02 02:23:10

标签: android gdb android-ndk

我已经设置了Eclipse来使用Eclipse& amp;来调试我的应用程序的Native端。 Seqoyah并添加了适当的C / C ++应用程序调试配置。

问题是Eclipse似乎在尝试启动与应用程序GDB服务器的连接之前就已经开始了。我不确定如何更改Eclipse尝试使用调试配置执行操作的顺序。任何帮助将不胜感激(一如既往)。

http://wiki.eclipse.org/Sequoyah/ndk_guide

31-gdb-set confirm off
31^done
(gdb) 
32-gdb-set width 0
32^done
(gdb) 
33-gdb-set height 0
33^done
(gdb) 
34-interpreter-exec console echo
34^done
(gdb) 
35-gdb-show prompt
35^done,value="(gdb) "
(gdb) 
36-gdb-set auto-solib-add on
36^done
(gdb) 
37-gdb-set stop-on-solib-events 0
37^done
(gdb) 
38-gdb-set stop-on-solib-events 1
38^done
(gdb) 
39-target-select remote localhost:5039
&"Remote communication error: Connection reset by peer.\n"
39^error,msg="Remote communication error: Connection reset by peer."
(gdb) 
40-gdb-exit
40^exit
Remote communication error: Connection reset by peer.

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。

Java / C ++ Native项目应该有两个可用的调试配置。第一个用于Java方面,第二个用于C ++方面。

  1. 确保您已根据以下内容设置环境:http://wiki.eclipse.org/Sequoyah/ndk_guide

  2. 在添加JNI共享库之后或在您的Activities onCreate中设置断点。

  3. 使用默认的调试配置调试应用程序。

  4. 在shell中导航到项目目录并发出$ NDK / ndk-gdb(其中$ NDK是Android Native Development Kit的位置)。

  5. 使用您在Sequoyah指南中创建的Native调试器调试您的应用程序。

  6. 如果一切顺利,您应该可以进入JNI代码,当应用程序崩溃时,请查看源中崩溃的位置。

    我还没有找到通过实际来源设置的方法,如果有人请点击这里发布。