⑴ 虛擬機上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