【问题标题】:ndk-gdb: “No symbol table is loaded”ndk-gdb:“未加载符号表”
【发布时间】:2012-03-03 16:51:26
【问题描述】:

我仍在使用 ndk-gdb,现在正在尝试解决导致我做另一个问题的主要问题,我自己回答了 xD

ndk-gdb 告诉我当前的库没有符号表。这就像我正在调试的文件与模拟器正在执行的文件不同。但我重新上传了应用程序。它还说“使用文件命令”,但文件仅在我调试本地程序时使用,对吗?它不适合当我像使用 android 进行远程调试时。

那我该怎么办?自3天以来我一直在寻找解决方案,但我仍然一无所知。 除了错误的文件问题,我可能应该问这个消息的其他原因是什么?

谢谢。 一些信息: ndk-build 和 ndk-gdb 在项目的父目录中调用。 安卓 API 级别 10 (2.3.3) 安卓 ndk r7b

Android.mk 文件内容:

MY_LOCAL_PATH := $(call my-dir)
LOCAL_PATH := $(MY_LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := wrapper
LOCAL_SRC_FILES := wrapper.c \
                aes.c \
                password.c \
                sha256.c \
                aescrypt.c
include $(BUILD_SHARED_LIBRARY)

【问题讨论】:

  • 你在构建带有调试信息的库吗?
  • 是的,我读到如果在 AndroidManifest 中将项目设置为可调试,则会添加符号。这就是我毫无问题地调试示例项目的方式。我还在 Android.mk 文件的 LOCAL_CFLAGS 变量中使用 NDK_DEBUG 标志和 -g / -gdbb 进行了测试。
  • 在 Cygwin 下辉煌无法操作。您可以加载由 ndk-build 生成的 JNI,但无法访问其他 .so。 set -i 's/\r\n/\n' 在源命令中回显错误,因此更改行结尾不起作用,将其改回仅在某个时候会发出错误,这东西坏了。

标签: android android-ndk android-ndk-r7


【解决方案1】:

如果您使用 Eclipse/Sequoyah,请检查文件 obj/local/armeabi/gdb2.setup 是否仅包含有效的 Unix 结束行样式。

生成的文件包含错误的结尾行 ,我收到以下消息:

没有加载符号表。使用“文件”命令。

【讨论】:

    【解决方案2】:
    No symbol table is loaded.  Use the "file" command.
    

    如果工作空间的目录路径名称中有空格,例如“C:\Documents and Settings\myworkspace”,则可能会出现此消息,解决方案是使用不带空格的路径,例如“ c:\myworkspace"

    【讨论】:

    • 谢谢,这终于为我解决了!
    【解决方案3】:

    我也遇到这个问题,因为我尝试在加载之前调试共享库,下面是我的过程虽然是中文写的,你可以使用谷歌翻译,祝你好运!

    http://blog.csdn.net/xinfuqizao/article/details/7625886

    【讨论】:

      【解决方案4】:

      另一个可能导致“未加载符号表”的问题是 ndk-gdb 脚本无法从手机中提取 app_process 文件。

      这发生在我身上是因为 ndk-gdb.py 中的一个边缘错误,其中检查“app_process32”是否存在的代码错误地成功了。它没有像脚本那样回退到“app_process”,而是尝试下载不存在的文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        相关资源
        最近更新 更多