`
yanlijun250
  • 浏览: 783749 次
文章分类
社区版块
存档分类
最新评论

用 Eclipse + GDB调试Android中C/C++程序

 
阅读更多

一、前期准备


1、编译通过的Android源代码(我是Android 2.3)


2、安装了CDT的Eclipse


3、重新编译Android gdbserver(非必须)

因手头Android 2.3源码编译后的版本执行gdbserver时报错:Segmentation fault,不得不重新编译gdbserver。参考博文:自己编译Android gdbserver(解决运行 gdbserver时 Segmentation fault 问题)



二、建立Eclipse C/C++工程

这里的C/C++工程属性可随意选择,目的是为了用Eclipse编辑和调试,不需要Eclipse做编译工作。建立好工程后可以将部分Android C/C++源码链接到工程中,方便查看。


三、编译并安装将被调试的程序


1、撰写Android.mk,Andriod源码下编译获得可执行文件或动态库
这是基本工作,无须多言

2、使用带调试符号表的C/C++程序替换原有程序
simba@simba-Vostro-3400:~/neptune/android_2.3$ adb push out/target/product/xxxx/symbols/system/bin/debug_demo /system/bin

3、在Eclipse Debug Configurations中新建C/C++ Remote Application
在Main标签页中设置:
C/C++ Application:
/home/simba/neptune/android_2.3/out/target/product/xxxx/symbols/system/bin/debug_demo
Project:
(将要调试的代码对应工程)
Connection:
local
Remote Absolute File Path :
/system/bin/debug_demo
Commands to execute before application:
/opt/android/sdks/r15/platform-tools/adb shell gdbserver :5039 /system/bin/debug_demo
/opt/android/sdks/r15/platform-tools/adb forward tcp:5039 tcp:5039
注意,这里的adb路径一定要完整路径选中 “Skip download to target path”

在Debugger标签页中设置:
GDB debugger(与gdbserver对应的gdb的路径):
/home/simba/neptune/android_2.3/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gdb

GDB command file:

暂时置空

Gdbserver Settings:
Gdbserver name:gdbserver

Portnumber:5039


4、开始愉悦地调试吧


--

参考文章:

用Eclipse开发与调试纯粹的Android C++程序,非ndk-build、ndk-gdb



分享到:
评论

相关推荐

    Eclipse+CDT+GDB调试android NDK程序

    ### Eclipse+CDT+GDB调试Android NDK程序详解 #### 开发环境确认与准备 在开始使用Eclipse+CDT+GDB调试Android NDK程序之前,首先需要确保已经搭建好以下开发环境: 1. **Ubuntu 11.10**:作为主要的操作系统,...

    Eclipse+CDT+GDB调试android_NDK程序

    【Eclipse+CDT+GDB调试Android NDK程序】是一种在Eclipse集成开发环境中,利用CDT(C/C++ Development Tooling)和GDB(GNU Debugger)进行原生代码调试的技术。Android NDK允许开发者在Android应用中使用C或C++编写...

    任意APK调试方案(eclipse+gdb)

    此处提到的调试方案主要针对APK中的native层面,即针对使用C或C++等语言编写的本地代码库。 该方案的基础准备工作首先需要一系列的开发与调试工具,包括eclipse IDE、Android NDK、Cygwin以及apktool。apktool是一...

    Eclipse+ADT+NDK调试C源码的方法

    本文将详细介绍如何利用Eclipse、ADT(Android Development Tools)插件以及NDK(Native Development Kit)来调试Android项目中的C源码。 #### 二、准备工作 **1. 安装必要的软件** - **adt-bundle-windows-x86.zip*...

    android下的C/C++代码编译工具

    NDK是一组工具,允许开发者使用C和C++编写应用程序的一部分,这些部分可以与Java代码一起运行,实现高性能的计算或者利用硬件特性。在本教程中,我们将深入探讨如何在Eclipse环境中集成NDK,以便更方便地编译和调试C...

    使用eclipse单步调试jni代码 (方法2)

    ### 使用Eclipse单步调试JNI代码(方法2) #### 环境配置 为了能够有效地进行JNI代码的调试,首先需要确保以下环境已正确配置: - **ADT Bundle**: Eclipse版本为Juno - **NDK**: 版本r9 - **JDK**: 版本8 - **...

    android+eclipse+ndk环境搭配

    总的来说,Android + Eclipse + NDK环境搭配是针对特定需求的高效开发方案,允许开发者充分利用C/C++的性能优势,同时利用Eclipse的强大调试功能。在实际开发中,根据项目需求和团队能力,合理选择是否采用这种搭配...

    Android源码本地C++代码调试方法

    总的来说,调试Android源码中的C++代码需要对Android系统有一定的了解,同时也需要熟悉Eclipse的调试工具和NDK的相关工作原理。通过以上步骤,开发者可以更有效地定位和解决问题,提升开发效率。

    c/c++Android开发环境配置

    【C/C++ Android开发环境配置】是Android原生开发中的重要环节,主要涉及三个关键工具:Android NDK、Android SDK和Ant。以下是这些工具的详细配置步骤和使用方法。 一、Android NDK NDK(Native Development Kit)...

    windows+eclipse+cygwin+cdt+ndk配置

    总的来说,配置Windows上的Eclipse、Cygwin、CDT和NDK环境,主要是为了在Windows环境下进行C/C++的Android原生代码开发。通过Eclipse和CDT,我们可以得到一个强大的C/C++ IDE;Cygwin提供了Linux工具链,使得在...

    Eclipse集成Android NDK

    Android NDK(Native Development Kit)是Google提供的一款工具集,允许开发者在Android应用中使用C和C++语言编写部分代码,以实现高性能、低级别的硬件访问或者利用现有的C/C++库。在Eclipse集成Android NDK的过程...

    使用eclipse单步调试jni代码(方法1)

    标题中的“使用eclipse单步调试jni代码(方法1)”是指使用Eclipse集成开发环境进行JNI(Java Native Interface)代码的调试,这是Android应用开发中处理C或C++原生代码的一种方式。JNI允许Java代码调用本地库,通常...

    在eclipse上调试android ndkc程序 教程

    本文将详细介绍如何在Eclipse环境中使用GDB Server(即gdsserver)来调试Android NDK程序。 **一、Android NDK介绍** Android NDK是一套工具,允许开发者在Android应用中使用原生代码,如C和C++。这在处理高性能...

    gdb-7.5_android_ubuntu10.04_python26

    标题 "gdb-7.5_android_ubuntu10.04_python26" 暗示了这是一个关于在Ubuntu 10.04操作系统上使用GDB(GNU调试器)7.5版本来调试Android应用的集合,其中可能包含Python 2.6的组件。GDB是一个强大的源代码级别调试器...

    Android NDK翻译之 NDK-GDB.html

    Android NDK-GDB是针对使用C/C++编程语言在Android平台上开发应用的开发者所必备的调试工具。从NDK r4版本开始,NDK引入了NDK-GDB,使得开发者能够方便地对本地代码进行调试。本文将详细介绍NDK-GDB的使用方法及其...

    《Android C++高级编程——使用NDK》_源码.zip

    主要内容:● 使用JNI将原生代码连接到Java中● 使用SWIG自动生成JNI代码● 使用POSIX线程实现多线程应用● 使用POSIX套接字实现网络应用● 使用logging、GDB和Eclipse调试器进行调试● 使用Valgrind分析内存● 使用...

    eclipse_cdt的使用教程

    在Android开发中,底层驱动开发往往涉及C语言,因为Android的内核和其他低级系统服务主要是用C和C++编写的。Eclipse CDT成为了一个理想的开发工具,它提供了一种高效、直观的方式来编写、测试和调试C/C++代码。 ...

Global site tag (gtag.js) - Google Analytics