⑴ 虚拟机上linux GDB无法安装,该怎么解决
在输入命令sudo apt-get install gdb之后,
就出现了下面这些提示信息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
gdb-doc gdbserver
The following NEW packages will be installed:
gdb
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 2,115 kB of archives.
After this operation, 5,657 kB of additional disk space will be used.
Err http://cn.archive.ubuntu.com/ubuntu/ precise/main gdb i386 7.4-2012.02-0ubuntu2
Temporary failure resolving 'cn.archive.ubuntu.com'
Failed to fetch http://cn.archive.ubuntu.com/ubuntu/pool/main/g/gdb/gdb_7.4-2012.02-0ubuntu2_i386.deb Temporary failure resolving 'cn.archive.ubuntu.com'
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
好像是安装失败了,请问这是怎么回事?难道是我Linux没联网?
------解决方案--------------------
明显是楼主没有联网
------解决方案--------------------
Failed to fetch http://cn.archive.ubuntu.com/ubuntu/pool/main/g/gdb/gdb_7.4-2012.02-0ubuntu2_i386.deb Temporary failure resolving 'cn.archive.ubuntu.com'
检查网络连接
没有问题的话先sudo apt-get update
------解决方案--------------------
Temporary failure resolving 'cn.archive.ubuntu.com'
检查网络设置,特别是DNS设置
⑵ 如何在centos7上安装最新的gdb
打开命令终端面板输入:sudo apt-get install gdb
如图所示:
即可安装,如果还是不可以,那就使用下面这种方式安装:
打开终端输入: wget ftp://ftp.gnu.org/gnu/gdb/gdb-7.9.tar.gz
下载完毕后解压 tar -zxvf /gdb-7.9.tar.gz 然后进行安装即可
检测安装没有的话使用命令:
apt-get list
⑶ gdb怎么用
先设计编辑源程序代码,然后用gcc编译器编译程序,,再进入gdb调试环境,最后用gdb调试程序(1、查看源文件:在gdb中输入“1”(list)就可以查看程序源代码。2、设置断点3、查看断点信息4、运行程序:可以输入“r”(run)开始运行程序5、查看变量值:调试程序重要手段就是查看断点处会自动暂停,此时输入“p变量名”可以查看制定变量的值6、单步运行:在断点处输入“n”或者“s”可单步运行7、继续运行程序8、推出gdb环境。这是在linux下的C
⑷ 如何在安卓系统上使用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命令进行代码调试了。
⑸ linux下的gdb是个命令,但在linux常用命令列表中找不到
首先,一般的命令其实也都是程序
装在系统路径下的程序的程序名,都可以作为命令直接调用
具体哪些路径是“系统路径”,Linux下可以用$PATH$命令来查看(通常会有多个路径,用冒号隔开)
而gdb其实是gcc/g++编译器的一个附带的调试器
虽然现在主流的Linux发行版中都会自带gcc编译器,当然也会附带这个gdb的调试器
但毕竟它不算是Linux系统的内部组件,所以自然也不能算做Linux的自带命令了
⑹ 请指出gdb调试中命令"n"和"s"的区别
set 功能较多,简易修改变量时总加上var (gdb) p n $1 = 0 (gdb) set n=5 "on" or "off" expected. (gdb) set var n=5 (gdb) p n $2 = 5