您的位置:首页 > 其它

adnroid NDK debug调试 断点无效

2016-09-26 11:23 281 查看
adnroid NDK debug调试 断点无效

要用NDK来DEBUG调试一个android工程,可惜加了断点还是不会在断点处停下,所有的断点处都加了一个勾(像这样

)。

按照网上的各种方法都试了:

1.配置好NDK给工程加上Native Support。

2.生成NDK调试文件,右键项目->properties->C/C++ build->Builder Setting 把默认的Build Command : ndk-build 修改成 ndk-build NDK_DEBUG=1。

3.AndroidManifest.xml文件中Debuggable设为true。

4.启动Cygwin进入当前工程目录。 执行命令 ndk-gdb --force --verbose –start ,在提示符<gdb>下输入quit退出。

5.右键点击工程 ->Debug As->Android Native Application。

可惜还是老样子,debug进的去,但是进去之后所有的断点貌似已经执行完毕。

后来发现有可能是ndk执行完毕后gdbsever才启动,迟了几秒钟,NDK层的代码(jni层??没仔细研究过)在gdbsever启动之前被执行了,则设置在C/C++代码中的断点无法起作用。

知道原因就好办了,有很多种方法,比如在代码执行之前加一个UI界面的控件触发,用触摸屏幕来启动单步调试。又或者在主函数入口处sleep数秒,等待gdbsever的启动。

我是直接在主函数入口处sleep(),debug调试显示成功了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: