Articles of gdb

ndk-gdb与多个so库

我从Android NDK r4了解了“ndk-gdb”的debugging工具。 现在我可以开始debugginghello-jni示例(尽pipe存在一些问题)。 但是,对于我自己的Android应用程序,我有几个这样的库使用,从大量的C / C ++文件构build。 我曾经使用ndk-build构build这些文件,然后将这些文件复制到$ PROJECT / libs目录下,而且无需debugging就可以正常工作。 但是现在我想用ndk-gdbdebugging一个这样的lib。 当我启动ndk-gdb时,它抱怨没有加载符号表。 我也将所有这些文件复制到$ PROJECT / bin / ndk / local / armeabi(看起来像gdb试图加载符号表的默认目录)。 而且,它仍然不起作用。 也许ndk-gdb在复制之后无法追踪我的文件? 或者为什么它不能加载任何符号表,甚至在我将它们复制到$ PROJECT / bin / ndk / local / armeabi之后? 有没有人遇到过这个问题? 非常感谢!

ptrace在Android上返回-1

我试图检测何时gdb连接到我的应用程序,我在JNI代码中使用它 long x = ptrace(PTRACE_TRACEME, 0, 1, 0); char buffer[24]; sprintf(buffer, "ptrace = %ld", x); return (*env)->NewStringUTF(env, buffer); 但是,无论gdb是否连接, x总是-1 。 这是为什么? 我能做些什么来弄清楚我做错了什么?

在*设备上debuggingAndroid中的本地代码*(不是模拟器)

我遵循这个描述在Android应用程序中debugging本机代码,它在仿真器上debugging时工作。 当我要在实际设备上进行debugging时,在切换到C / C ++debuggingconfiguration的位置,Eclipse报告“远程通信错误:错误的文件描述符”。 显然有一个问题到达GdbServer(我猜)。 我想所有这些都是对debuggingconfiguration的小调整。 不幸的是,我还没有真正了解整个设置是如何工作的,所以我无法find问题的答案。 任何帮助真的不胜感激。

如何使用GDBSERVER在Android上debugging应用程序?

我试图debugging我的应用程序通过JNI使用本机共享库。 我可以使用“gdbserver –attach pid”附加到正在运行的应用程序,但是我需要在启动gdbserver命令时启动我的应用程序。 这个主题有100万个博客点击,但他们似乎没有清楚你如何启动你的应用程序。 他们都说只要input“gdbserver 10.0.2.2:1234 ./MyProgram”,但究竟是“MyProgram”。 那是MyProgram.apk吗? 是MyProgram.so吗? 这是应用程序安装时创build的一些其他文件? 如果是这样,它的path是什么?

ndk-gdb错误:设备不支持应用程序的目标CPU ABI

试图运行ndk-gdb并得到这个错误: Android NDK安装path:/ Library / AndroidSDK / ndk / 使用特定的adb命令:/ Library / AndroidSDK / platform-tools / adb ADB版本发现:Android Debug Bridge版本1.0.31 使用ADB标志: 使用自动检测的项目path:。 find包名:com.dev.project jni / Android.mk:18:* Android NDK:正在中止。 。 停止。 以应用程序为目标的ABI:Android NDK: 设备API级别:17 设备CPU ABIs:armeabi-v7a armeabi 错误:设备不支持应用程序的目标CPU ABI! 设备支持:armeabi-v7a armeabi 包支持:Android NDK: jni / Android.mk中的第18行是一个导入模块调用。 这是什么意思,以及如何补救? 应用程序是可debugging的ndk文档。 我正在使用Mac。 我可以构build和运行应用程序,所以构build脚本应该没问题。 Android.mk LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) […]

Android NDKdebugging

Android NDK文档对于我来说看起来并不是那么清楚,就是你运行什么样的命令来获取debugging信息,并且不在提供的ndk-gdb可执行文件中。 如果有哪一行的格式可以打开,在什么文件中,是否有规范? 如果是这样,那么你怎样给这个debugging器提供这个信息,并且通过什么手段? 对于这个过程如何工作,我无能为力。 谢谢

Android NDKfinddynamic链接:无法debugging库

我有一个项目,编译,加载和运行在Android设备很好。 当我调用gdb服务器时,它也可以正常工作。 然后,当我调用gdb客户端来运行带有断点的消息出现时: Error while mapping shared library sections: /system/bin/linker: No such file or directory. libandroid.so: No such file or directory. liblog.so: No such file or directory. libEGL.so: No such file or directory. libOpenSLES.so: No such file or directory. libGLESv2.so: No such file or directory. libGLESv2_POWERVR_SGX540_120.so: No such file or directory. … warning: Unable to […]

在摩托罗拉手机上运行ndk-gdb包未find错误

我有一个C ++的Android应用程序,我试图用ndk-gdb进行debugging。 应用程序确实使用多个线程,但据推测ndk的r5支持多个线程。 另外,我甚至没有到gdb启动的地步。 我运行命令: ndk-gdb –start –force –verbose 然后它findndk和sdk(或至lessadb)的正确path,以及所需的ABI和什么。 $ ndk-gdb –start –force –verbose Android NDK installation path: /home/leif/eclipse/android-ndk-r5b Using default adb command: /home/leif/eclipse/android-sdk-linux_86/platform-tools/adb ADB version found: Android Debug Bridge version 1.0.26 Using final ADB command: '/home/leif/eclipse/android-sdk-linux_86/platform-tools/adb' Using auto-detected project path: . Found package name: net.leifandersen.mobile.android.marblemachine ABIs targetted by application: armeabi Device API Level: […]

android ndk的ndk-gdb与emacs的整合?

任何人都可以告诉我如何使用gdb模式从emacs内运行ndk-gdb ? 我目前正在shell缓冲区中运行它。 我喜欢有一个方法来自动同步一个源文件缓冲区与gdb当前电脑当我rest或步骤。 还有更多的东西,比如设置来自源代码的中断,显示gdb本地文件的缓冲区等,gdb命令的快捷方式也是很重要的。 背景:我正在用android-mode在OSX 10.6.6上使用android-ndk-r5b在2010-12-15的GNU Emacs 23.1.90.1(i386-apple-darwin10.5.0,NS apple-appkit-1038.35)和混合java / c / c + +代码的android目标。 emacs中的Android模式和shell(运行ndk-gdb)让我可以看到我需要的所有东西,但是如果我能得到一个源缓冲区来与debugging器同步,或者得到相当于在这里介绍EmacsWiki。 仅供参考,我目前使用eclipse进行java端的debugging和开发,但是发现它不稳定,难以设置本地工作,尽pipesequoyah的可用性,此外,eclipse没有emacs。 [追加] 使用ndk-gdb作为gdb命令运行Mx gdb(见下文)会产生一个名为gud的缓冲区,其模式行语句为“(Debugger:run [initializing …])”。 缓冲区不接受gdb命令,也不接受emacs gdb命令 – (Ms,Mn等结果在<>中 输出: 当前目录是/ Users / jpschelter / Android NDK安装path:/ Developer / android-ndk-r5b 使用特定的adb命令:/ Developer / android-sdk-mac_x86 / platform-tools / adb … …… … (没有finddebugging符号) 警告:无法finddynamic链接器断点function。 GDB将无法debugging共享库初始值设定项 并跟踪显式加载的dynamic代码。 来自/Developer/Projects/ECS/DIGG/Projects/droid/obj/local/armeabi/libc.so的nanosleep()中的0xafd0e21c (gdb)未定义的命令:“1-inferior-tty-set”。 […]

run-as软件包'abc'未知 – Galaxy S4 Jellybean或Android 4.3

我不能为运行Jellybean 4.2.2的Galaxy S4运行run-as(或ndk-gdb)。 ~ $ adb shell shell@android:/ $ run-as abc ls run-as: Package 'abc' is unknown 对于ICS之前的设备,这个问题有多个答案,但是这些问题似乎已经在ICS中得到了解决。 更新 – 2013年8月:在最初出现在Galaxy S4和Jellybean 4.2.2之后,run-as问题现在似乎在所有的4.3设备上。 看到这个Android的错误 。 请参阅此处确认的Android问题。 更新 – 2013年11月:Google发布了修复运行的补丁 (如Android 4.4)。