adnroid NDK debug调试 断点无效

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调试显示成功了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值