Ⅰ 如何安装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. 如果安装不成功,检查一下错误信息,有可能是因为少安装了一些关联软件,根据提示安装即可。
Ⅱ 怎样指定gdbserver运行的linux系统版本
目前linux社区主流的系统厂家有redhat 、debian、ubuntu、suse等几个国外大商,在国内着名的有两家,一家是中标普华,一家是红旗。相比之下,国内的两家linux厂商适合政府机构与oem厂商使用,而国外的厂家以redhat公司最为出名,因为redhat是目前linux社区走的最前沿的系统厂家,它不仅使用方便,而且社区维护的人比较多,如果有问题,更新比较方便,它旗下有两条操作系统生产线,一条是桌面版生产线,命名为fedora系列,目前最新的是fedora7,这个操作系统目前集成了linux社区内较新的软件,同时提供在线升级功能,而且使用的人也比较多,有问题好交流,更为主要的是该系统是完全免费的,具体的下载地址为fedoraproject/
Ⅲ 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 时可以使用这种身份验证。
Ⅳ apk调试方法求助
方法一:
1、使用apktool的-d选项反编译apk文件
java -jar apktool.jar d -d target.apk -o output
2、在AndroidManifest的application节点中添加 android:debuggable="true"
3、在入口点的类的onCreate中添加如下代码等待调试
invoke-static{}, Landroid/os/Debug;->waitForDebugger()V
4、回编译apk
java -jar apktool.jar b -d output -o newTarget.apk
5、对apk进行签名
java -jar signapk.jar testkey.x509.pem testkey.pk8 newTarget.apk signed.apk
6、将签名后的apk安装到手机或者模拟器上
adb install signed.apk
7、将1中的smali代码导入到Android Studio中
file→open→output目录→下断点
8、打开Monitor查找相应的进程
运行→monitor 或者Tools ->Android ->Android Device Monitor
9、配置远程调试选项
Run→Editor Configurations→Defaults→Remote,点击+号新增一个,Host为localhost,Port为8700
10、打开apk,点击绿色的小虫子就可以开始调试了
方法二:无需修改原apk文件
1、用 Android killer等工具反编译apk文件
2、将smali代码入到Android Studio中,安装smaliidea插件
File→Settings→Plugins→Install plugin from disk…→Restart
3、配置远程调试选项,打开monitor
4、使用adb以debug方式启动apk
adb shell am start -D -n package/activitiyname
5、下断点开始调试,在watch中添加寄存器http://www.315nk.com/不清楚追问,希望能帮助到您
Ⅳ 在arm-linux-gdb+gdbserver安装过程总的问题
老大我才刚刚学linux昨天直接就安装完成咯,你仔细看看…
Ⅵ 如何在安卓系统上使用arm-linux-gdb调试内核
1,先下载最新版本的gdb源代码包,我使用的是gdb-7.6.tar.gz,使用tar命令进行解包(tar -xvzf gdb-7.6.tar.gz),cd进gdb-7.6/gdb目录,使用vi找到remote.c中的如下代码:
if(buf_len > 2 * rsa->sizeof_g_packet)
error(_("Remote 'g' packet reply is too long: %s"),rs->buf);
将上面两行注释掉,添加如下代码
if(buf_len > 2 * rsa->sizeof_g_packet)
{
rsa->sizeof_g_packet = buf_len;
for(i = 0; i < gdbarch_num_regs(gdbarch); i++)
{
if(rsa->regs[i].pnum == -1)
continue;
if(rsa->regs[i].offset >= rsa->sizeof_g_packet)
rsa->regs[i].in_g_packet = 0;
else
rsa->regs[i].in_g_packet = 1;
}
}
使用如下命令对代码进行配置、编译和安装
./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
make
make install
2,gdbserver使用android4.2模拟器中自带的版本(v7.1)
3,将NDK编译好的C/C++可执行程序,上传到模拟器中/data/test目录下,假设可执行程序的名称为testHello。
4,使用命令:gdbserver :7000 /data/test/testHello 启动模拟器端的调试。
5,启动arm-linux-gdb之前,使用vi打开~/.bash_profile文件,在其中添加:
export PATH=$PATH:/usr/local/arm-gdb/bin,以便在程序的其他目录可以直接启动arm-linux-gdb程序
6,cd至ndk编译好的testHello文件所在目录
7,使用如下命令进行端口映射:adb forward tcp:7000 tcp:7000,将模拟器的7000端口和本机的7000端口进行映射
8,使用命令:arm-linux-gdb testHello启动gdb调试
9,使用target remote :7000 链接模拟器中gdbserver启动的服务。
10,自此,我们就可以使用gdb命令进行代码调试了。
Ⅶ 如何使用arm-eabi-gdb调试android c/c++程序
1,先下载最新版本的gdb源代码包,我使用的是gdb-7.6.tar.gz,使用tar命令进行解包(tar -xvzf gdb-7.6.tar.gz),cd进gdb-7.6/gdb目录,使用vi找到remote.c中的如下代码:
if(buf_len > 2 * rsa->sizeof_g_packet)
error(_("Remote 'g' packet reply is too long: %s"),rs->buf);
将上面两行注释掉,添加如下代码
if(buf_len > 2 * rsa->sizeof_g_packet)
{
rsa->sizeof_g_packet = buf_len;
for(i = 0; i < gdbarch_num_regs(gdbarch); i++)
{
if(rsa->regs[i].pnum == -1)
continue;
if(rsa->regs[i].offset >= rsa->sizeof_g_packet)
rsa->regs[i].in_g_packet = 0;
else
rsa->regs[i].in_g_packet = 1;
}
}
使用如下命令对代码进行配置、编译和安装
./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
make
make install
2,gdbserver使用android4.2模拟器中自带的版本(v7.1)
3,将NDK编译好的C/C++可执行程序,上传到模拟器中/data/test目录下,假设可执行程序的名称为testHello。
4,使用命令:gdbserver :7000 /data/test/testHello 启动模拟器端的调试。
5,启动arm-linux-gdb之前,使用vi打开~/.bash_profile文件,在其中添加:
export PATH=$PATH:/usr/local/arm-gdb/bin,以便在程序的其他目录可以直接启动arm-linux-gdb程序
6,cd至ndk编译好的testHello文件所在目录
7,使用如下命令进行端口映射:adb forward tcp:7000 tcp:7000,将模拟器的7000端口和本机的7000端口进行映射
8,使用命令:arm-linux-gdb testHello启动gdb调试
9,使用target remote :7000 链接模拟器中gdbserver启动的服务。
10,自此,我们就可以使用gdb命令进行代码调试了。
Ⅷ 在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等.
Ⅸ 请教gdbserver使用方法
方法是没有问题的。不过你刚gdbserver以attach方式启动调试的时候,你的程序应该是停在sleep()的库函数里面,
这个时候走单步一般会报“Cannot find bounds of current function”。
你启动gdb之后把set debug remote 1 打开,然后把gdb侧和gdbserver侧的调试打印都贴上来看一下。