【问题标题】:Debugging native library: breakpoint is hit in C++, but "Step ..." commands unavailable调试本机库:在 C++ 中命中断点,但“Step ...”命令不可用
【发布时间】:2016-10-03 07:25:44
【问题描述】:

我正在使用默认的“app-native”调试配置。我只需选择它,单击“调试”,应用程序就会启动,并且很快就会命中本机断点:

但是,我无法踏入任何地方。就好像 IDE 没有识别出调试已经在进行中并且执行已停止。如您所见,所有 step over / step into 和类似操作都不可用:

按暂停没有任何作用。

如何解决这个问题?

【问题讨论】:

    标签: android debugging android-studio android-ndk


    【解决方案1】:

    NDK 功能已经是实验性的,但这似乎是一个奇怪的错误。

    也许你有比这更多的步骤,但以防万一:

    • 将调试器定义为 lldb。
    • 在路径中定义您的 NDK 你下载的(NDK11c应该够用了)
    • 在 android root build.gradle 项目上使用 gradle experimental 0.4.0 或 0.7.0。

    • 在 app/build.gradle 中定义您的 ndk 模块节点。

    gradle 实验:

    dependencies 
    {
        classpath 'com.android.tools.build:gradle-experimental:0.4.0'
    }
    
    //android ndk-module 
        android.ndk {
                    moduleName = "sensorgraph"
                    cppFlags.add("-Werror")
                }
    

    如果您尝试使用 android studio 原生示例进行默认调试,则问题应该出在 LLDB 调试器中。

    干杯。

    【讨论】:

    • 可能需要注意的是,我没有使用 100% Gradle 项目,只是包装了我的旧式 Android.mk / Application.mk 项目。它不能用 0.4.0 和 0.7.0 编译。说它需要 1.1.0+。
    • 对不起,我从来没有在android studio上使用过android.mk-s,只在eclipse中使用过,但据我所知,如果你想使用ndk编译,你应该在你的gradle文件中定义ndk模块如果要调试应用程序,请定义 gradle experimental。尝试执行 android studio ndk 示例。 github.com/googlesamples/android-ndk
    猜你喜欢
    • 2020-01-14
    • 1970-01-01
    • 2021-02-15
    • 2021-09-26
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多