GDB调试android 的lib.so的一些体会

本文介绍了使用GDB调试Android native库lib.so的过程和技巧,包括如何设置断点、查看变量、处理调试过程中的问题,以及应对可能出现的卡死和无响应错误。强调了调试时需要确保调用发生在libc之后,并建议使用CMAKE进行编译。
摘要由CSDN通过智能技术生成

首先是习惯了IDE界面,在gdb命令下真的不方便。gdb调试这前是用ndk-build编译。.so。用ndk-build编译编译时,在JNI的调用用中比如 public native String stringFromJNI(); 这个函数在代码编辑中会显示找不到的错误。 build就是了,不要管它。ndk-build和AS的容合没有CMAKE做的好。要写代码的自已保证名字参数的一致性,如非必要还是用CMAKE好。

1,准备工作,要做好。ndk-gdb-py或者ndk-gdb,是停在libc这个库的入口和出口处的。如果你的代码不能,在这之后由人品输入调用的话,是永远不会进入到你自已的lib代码中的。所以对lib的调用写成由用户接口调用吧。只少调试时要这样调用。因为都gdb是命令,就是命令输入键码去调用自已lib的中函数吧。

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        desc = String.format("%s输入的软按键编码是%d,动作是按下", desc, keyCode);
        if (keyCode == KeyEvent.KEYCODE_A) {
            desc=stringFromJNI();
        }
  TextView tv = (TextView) findViewById(R.id.sample_text);
    tv.setText(stringFromJNI());
    Log.d(TAG, desc);
    return true;
} else {
    //返回true表示处理完了不再输入该字符,返回false表示给你输入该字符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值