导航:首页 > 操作系统 > androidgdb下载

androidgdb下载

发布时间:2022-08-09 04:15:15

❶ gdb.exe在mingw官网哪里下载

http://sourceforge.net/projects/mingw/files/MinGW/Extension/gdb/

android${ANDROID_ROOT}/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6源码在哪如何替换代

Sources for this prebuilt toolchain can be downloaded from Android Opensource
Project GIT repository git://android.googlesource.com/toolchain.

Configure options:
export CC="gcc -m64"
export CXX="g++ -m64"
export ABI=64
path/to/build/configure --target=arm-linux-androideabi \
--host=x86_64-linux-gnu --build=x86_64-linux-gnu \
--with-gcc-version=4.6 --with-binutils-version=2.21 \
--with-gmp-version=4.2.4 --with-mpfr-version=2.4.1 \
--with-gdb-version=7.3.x --with-arch=armv5te \
--with-sysroot=[ics generic sysroot] \
--with-gold-version=2.21 --enable-gold=default

❸ 如何使用gdb调试android程序

用gdb调试动态链接库
大家都知道在 Linux 可以用 gdb 来调试应用程序,当然前提是用 gcc 编译程序时要加上 -g 参数。
我这篇文章里将讨论一下用 gdb 来调试动态链接库的问题。
首先,假设我们准备这样的一个动态链接库:
引用:
库名称是: ggg
动态链接库文件名是: libggg.so
头文件是: get.h
提供这样两个函数调用接口:
int get ();
int set (int a);

要生成这样一个动态链接库,我们首先编写这样一个头文件:
/************关于本文档********************************************
*filename: get.h
*********************************************************************/
int get ();
int set (int a);
然后准备这样一个生成动态链接库的源文件:
/************关于本文档********************************************
*filename: get.cpp
*********************************************************************/
#include
#include "get.h"
static int x=0;
int get ()
{
printf ("get x=%d\n", x);
return x;
}
int set (int a)
{
printf ("set a=%d\n", a);
x = a;
return x;
}
然后我们用 GNU 的 C/C++ 编译器来生成动态链接库,编译命令如下:
引用:
g++ get.cpp -shared -g -DDEBUG -o libggg.so
这样我们就准备好了动态链接库了,下面我们编写一个应用程序来调用此动态链接库,源代码如下:
/************关于本文档********************************************
*filename: pk.cpp
*********************************************************************/
#include
#include "get.h"
int main (int argc, char** argv)
{
int a = 100;
int b = get ();
int c = set (a);
int d = get ();
printf ("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
return 0;
}
编译此程序用下列命令,如果已经把上面生成的 libggg.so 放到了库文件搜索路径指定的文件目录,比如 /lib 或 /usr/lib 之类的,就用下面这条命令:
引用:
g++ pk.cpp -o app -Wall -g -lggg
否则就用下面这条命令:
引用:
g++ pk.cpp -o app -Wall -g -lggg -L`pwd`
下面我们就开始调试上面命令生成的 app 程序吧。如果已经把上面生成的 libggg.so 放到了库文件搜索路径指定的文件目录,比如 /lib 或 /usr/lib 之类的,调试就顺利完成,如下:
引用:
#gdb ./app
GNU gdb 6.4-debian
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show ing" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) b main /* 这是在程序的 main 处设置断点 */
Breakpoint 1 at 0x804853c: file pk.cpp, line 7.
(gdb) b set /* 这是在程序的 set 处设置断点 */
Function "set" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y /* 这里必须选择 y 调试程序才会跟踪到动态链接库内部去 */
Breakpoint 2 (set) pending.
(gdb) run /* 开始运行我们的程序,直到遇见断点时暂停 */
Starting program: /data/example/c/app
Breakpoint 3 at 0xb7f665f8: file get.cpp, line 11.
Pending breakpoint "set" resolved
Breakpoint 1, main (argc=1, argv=0xbfArrayArray0504) at pk.cpp:7
7 int a = 100;
(gdb) n /* 继续执行程序的下一行代码 */
8 int b = get ();
(gdb) n /* 程序执行到了我们断点所在的动态链接库了 */
get x=0
Array int c = set (a);
(gdb) n
Breakpoint 3, set (a=100) at get.cpp:11
11 printf ("set a=%d\n", a);
(gdb) list /* 查看当前代码行周围的代码,证明我们已经跟踪到动态链接库的源代码里面了 */
6 printf ("get x=%d\n", x);
7 return x;
8 }
Array int set (int a)
10 {
11 printf ("set a=%d\n", a);
12 x = a;
13 return x;
14 }
(gdb) n
set a=100
12 x = a;
(gdb) n
13 return x;
(gdb) n
14 }
(gdb) n
main (argc=1, argv=0xbfArrayArray0504) at pk.cpp:10
10 int d = get ();
(gdb) n
get x=100
11 printf ("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
(gdb) n
a=100,b=0,c=100,d=100
12 return 0;
(gdb) c
Continuing.
Program exited normally.
(gdb) quit /* 程序顺利执行结束 */
如果我们没有把动态链接库放到指定目录,比如/lib里面,调试就会失败,过程如下:
引用:
# gdb ./app
GNU gdb 6.4-debian
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show ing" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) b main
Breakpoint 1 at 0x804853c: file pk.cpp, line 7.
(gdb) b set
Function "set" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 2 (set) pending.
(gdb) run /* 虽然调试操作都一样,但程序执行失败 */
Starting program: /data/example/c/app
/data/example/c/app: error while loading shared libraries: libggg.so: cannot open shared object file: No such file or directory
Program exited with code 0177.
(gdb) quit

❹ 如何安装gdb

gdb安装步骤如下:
1. 首先可以使用命令“ rpm -qa |grep gdb"查询系统中是否安装了gdb软件包,如果安装了,应该显示如下:
[root@localhost ~]# rpm -qa |grep gdb
gdbm-1.8.0-26.2.1
gdb-6.8-37.el5
gdbm-devel-1.8.0-26.2.1
2. 如果系统没有安装gdb软件包,需要先准备好gdb对应的软件包,通常在系统光盘Server文件夹下;
3. 使用命令“rpm -ivh gdb-6.8-37.el5.rpm”或者类似的操作回车即可安装;
4. 安装结束后,再使用命令“rpm -qa |grep gdb"查询,如果成功安装了,应该显示如下:
[root@localhost ~]# rpm -qa |grep gdb
gdb-6.8-37.el5
5. 如果安装不成功,检查一下错误信息,有可能是因为少安装了一些关联软件,根据提示安装即可。

❺ 如何用gdb找到Android so文件中的加密key

下载一个从android模拟器里取system lib的工具busybox,然后调用命令
$adb push busybox /dev/sample/busybox
$adb shell chmod 777 /dev/sample/busybox
$adb shell ./dev/sample/busybox tar -cf /dev/sample/libs.tar /system/lib
$adb pull /dev/sample/libs.tar libs.tar
这样就将模拟器下的 /system/lib 目录的所有库(so)文件打包并下载下来了,解压libs.tar就得到了咱们所需要的所有库文件。
接着将所有的文件 到 $(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,这个时候基本的配置工作就结束了。
然后建立tutorial01.c调用tutorial02.c中的方法,通过写makefile文件将之打包为SO
CC = /cygdrive/e/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc

CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I /cygdrive/e/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-soname,$@ -Wl,-shared,-Bsymbolic -lc
CRT_OBJS= -lz -lm

# source files:
SRCS= tutorial01.c tutorial02.c tutorial02.h

all: libtutorial.so

libtutorial.so: tutorial01.o tutorial02.o
$(CC) $(SDFLAGS) -o $@ tutorial01.o tutorial02.o $(CRT_OBJS)

tutorial01.o: tutorial02.h
tutorial02.o: tutorial02.h

clean:
rm -f libtutorial.so *.o
然后make,这个时候会报错 can't find "armelf.xsc", 在ndk的目录里搜索一下,搜到之后 到$(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,然后make,成功。
接着建立一个文件test01.c,动态加载so文件,然后写一个makefile文件,最后make成功。
建立一个Android工程 testapp来测试其运行情况,实验表明是能够正确运行的。

❻ droidpocke汉化版下载地址

我只有英文……http://m..com/from=1002037a/bd_page_type=1/ssid=0/uid=0/id=/w=0_10_pocketmine+for+android/t=zbios/l=1/tc?ref=www_zbios&pu=sz%401320_480%2Ccuid%4008vYi0i9Hu_DaH800aHItgibvtY5av8V_ivaul88HaiXavt3gaB3i_aY28gGa2f1A%2Ccua%40_PvjhjatvhIDJEjPkJAiC_CV-Ig-I2iKAqqqB%2Ccut%40fJx46qIWv85LI2IJ_hvUhgOYDj5WmGqAC%2Cosname%40boxapp%2Cctv%402%2Ccfrom%401001190c%2Ccen%40cuid_cua_cut%2Ccsrc%40app_mainbox_txt%2Cta%40zbios_2_4.4_6_6.9%2Cusm%402%2Cvmgdb%400020100228y&lid=8929560859495719263&order=1&fm=alas_13&tj=wise_app_1_0_10_title&sec=8724&di=6e147246a5f5f060&bdenc=1&tch=124.0.0.0.0.0&nsrc=IlPT2AEptyoA_-eXhiQZrtRQOR2MoAWkfov0cgs--_

❼ android gdbserver 有什么用

使用 SQL Server 代理服务连接到 SQL Server SQL Server 代理服务可以使用 Windows 身份验证或 SQL Server 身份验证连接到 SQL Server 本地实例。无论您选择哪种身份验证,帐户都必须是 sysadmin 固定服务器角色的成员。 可用身份验证方法 SQL Server 代理可以使用两种不同的身份验证方法连接到 SQL Server 实例: Windows 身份验证,使用这种方法时,SQL Server 代理服务使用定义为服务启动帐户的 Microsoft Windows 域帐户连接到 SQL Server 实例。 SQL Server 身份验证,使用这种方法时,SQL Server 代理服务使用 SQL Server 身份验证登录名连接到 SQL Server 实例。只有 sysadmin 角色的成员可以这样登录。 安全说明: 在 SQL Server 2005 中,SQL Server 代理不支持 SQL Server 身份验证。仅在管理早期版本的 SQL Server 时可以使用这种身份验证。

❽ 在Android设备上怎么调试守护进程

其实网上有很多类似的文章,但是你会发现几乎都不可重现,要么是细节没讲清楚,要么是压根自己没有真正去试过。这里,我仅给出自己用gdb和gdbserver调试android native code的实际过程,希望对大家有用。

注:以调试mediaserver进程为例.

第一步:你需要下载android,以debug方式编译,并以生成的image起模拟器或者设备。

第二步:你需要从“http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip”下载一个gdb,覆盖到android源码中gdb对应的位置。

第三步:adb shell到设备,并起gdbserver侦听目标进程:

adb shell

gdbserver :5039 /system/bin/mediaserver

第四步: 建立pc机和设备的消息连接:

adb forward tcp:5039 tcp:5039

第五步: 使用gdb调试目标进程:

cd android_src

prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gdb out/debug/target/proct/generic/symbols/system/bin/mediaserver

第六步: 设置符号表:

set solib-absolute-prefix /your_android_src_path/out/debug/target/proct/generic/symbols

set solib-search-path /your_android_src_path/out/debug/target/proct/generic/symbols/system/lib

第七步: 使gdb和gdb server建立连接:

target remote :5039

第八步: ok. 现在可以使用gdb的命令进行调试,譬如next\break\step\info thread等.

❾ 如何使用arm-eabi-gdb调试android c/c++程序

1.获取gdbserver

prebuilt/android-arm/gdbserver

2.获取arm-eabi-gdb

prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin

3.启动emulator(即qemu虚拟机,调式linux内核时用到)

$adb remount && adb push gdbserver /system/bin

adb shell

#gdbserver 10.0.2.2:1234 /system/bin/ping

$telnet localhost 5554

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

Android Console: type 'help' for a list of commands

OK

]

KO: unknown command, try 'help'

**cmd**redir add tcp:1234:1234

OK

exit

Connection closed by foreign host.

$cdout/target/proct/generic/symbols/system/bin && arm-eabi-gdb ping

(gdb) r

Starting program:

Don't know how to run. Try "help target".

(gdb) target remote localhost:1234

Remote debugging using localhost:1234

0xb0000100 in ?? ()

(gdb) l

1779 usage();

1780 if (argc > 5)

1781 usage();

1782 } else {

1783 if (argc > 10)

1784 usage();

1785 options |= F_SOURCEROUTE;

1786 }

1787 }

1788 while (argc > 0) {

❿ 如何用gdb找到android so文件中的加密key

你好,我现在能够用NDK的如下方式写几个简单的文件,然后打包为SO,再用另外的一个.C文件调用SO,然后生成最终的供Android使用的SO文件,具体方式如下:
下载一个从android模拟器里取system lib的工具busybox,然后调用命令
$adb push busybox /dev/sample/busybox
$adb shell chmod 777 /dev/sample/busybox
$adb shell ./dev/sample/busybox tar -cf /dev/sample/libs.tar /system/lib
$adb pull /dev/sample/libs.tar libs.tar
这样就将模拟器下的 /system/lib 目录的所有库(so)文件打包并下载下来了,解压libs.tar就得到了我们所需要的所有库文件。
接着将所有的文件 到 $(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,这个时候基本的配置工作就结束了。
然后建立tutorial01.c调用tutorial02.c中的方法,通过写makefile文件将之打包为SO
CC = /cygdrive/e/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc

CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I /cygdrive/e/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-soname,$@ -Wl,-shared,-Bsymbolic -lc
CRT_OBJS= -lz -lm

# source files:
SRCS= tutorial01.c tutorial02.c tutorial02.h

all: libtutorial.so

libtutorial.so: tutorial01.o tutorial02.o
$(CC) $(SDFLAGS) -o $@ tutorial01.o tutorial02.o $(CRT_OBJS)

tutorial01.o: tutorial02.h
tutorial02.o: tutorial02.h

clean:
rm -f libtutorial.so *.o
然后make,这个时候会报错 can't find "armelf.xsc", 在ndk的目录里搜索一下,搜到之后 到$(NDK)\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1,然后make,成功。
接着建立一个文件test01.c,动态加载so文件,然后写一个makefile文件,最后make成功。
建立一个Android工程 testapp来测试其运行情况,实验表明是能够正确运行的。

阅读全文

与androidgdb下载相关的资料

热点内容
pdf降低大小 浏览:230
魔兽世界中文如何外服服务器 浏览:924
kindle转pdf格式 浏览:60
单片机自动控制 浏览:673
需要很多文件夹怎么快速的新建啊 浏览:67
算法申请着作权 浏览:213
以前手机号换了要怎么登录农行app 浏览:192
线切割编程系统怎么绘画 浏览:234
如何搭建云服务器异地容灾 浏览:923
黄金拐点指标源码 浏览:92
算法导论第九章 浏览:277
鸽子为什么生成服务器没反应 浏览:491
freebsdnginxphp 浏览:216
噪声消除算法 浏览:608
vue类似电脑文件夹展示 浏览:112
后备服务器有什么功效 浏览:269
连不上服务器怎么连 浏览:601
什么构架的可以刷安卓系统 浏览:771
爱奇艺APP怎么兑换CDK 浏览:995
程序员买4k显示器还是2k显示器 浏览:144