當前位置:首頁 » 操作系統 » gdb源碼安裝

gdb源碼安裝

發布時間: 2023-03-21 15:24:12

❶ gdb源碼編譯安裝

安裝完成提示鏈接庫方法

Q&A

Q: makeinfo is missing on your system
A: root用戶 sudo apt-get install texinfo
非root用戶 conda install -c conda-forge texinfo (需提前安裝conda)

❷ 如何使用gdb調試python服務

1.安裝gdb 最好是gdb7.7版本
2.獲取python源代碼
3.編譯python
* ./configure --prefix=/home/admin/python
* make "CFLAGS=-g -fno-inline -fno-strict-aliasing"
* make install
4.復早攜制python源代碼中的Tools//gdb/libpython.py到目錄 ~/.gdbinit
5.修改.gdbinit中的代碼
<<<< if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
修改為
>>>> if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx && $fp != 0
6.啟動gdb ./gdb python
可用命令有 ./gdb python --pid=${pid}
./gdb python --core=${core_file}
7.引入libpython.py
(gdb) python
>import sys
>sys.path.insert(0,'/home/admin/')
>import libpython
>end
(gdb)
8.然後可運行命令py-bt,py-list,pystack,pystackv
註:
1.libpython.py為python debug擴展
2.gdbinit中包含擴展命令,pystack即在這里邊定義
3.若運行pystack時出現錯誤 No symbol "co" in current context.
則表示未執行以下兩個步驟:
make "CFLAGS=-g -fno-inline -fno-strict-aliasing"
修改.gdbinit中的代陸察伏碼(修改內容見沒清上邊的步驟5)

❸ 如何在安卓系統上使用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命令進行代碼調試了。

❹ 如何編譯可以在Windows下運行的帶有Python支持的ARM Linux GDB

做這件事情的目的是為了在QtCreator里調試ARM Linux程序的時候,能看清楚QString、QList這些Qt特有的對象的內容,而不是一個完全看不懂的結構體。
目前(2014年8月)Linaro、CodeSourcery的GCC工具鏈里的GDB都不支持Python。想知道你用的GDB支持不支持,試一試就行,這樣表示不支持:
(gdb) python
>print 'Hello GDB!'
>(按Ctrl+D)Python scripting is not supported in this of GDB.
這樣表示支持:
(gdb) python
>print 'Hello GDB!'
>(按Ctrl+D)Hello GDB!
這件事情乍一看也很簡單,只要把GDB源碼下載下來,然後再配置,打開Python支持就行了。實際上會遇到的問題是,在MinGW下,又要與「\」和「:」這兩個Windows路徑里的刺頭斗爭了。我覺得我之前挺傻,編譯MinGW下Qt的時候,就去硬磕源碼和configure腳本去了。這次GDB的configure是自動生成的,不是給人看的,configure.ac看起來也很費勁,根本磕不下去,於是我換了個思路,在ubuntu下交叉編譯吧,sudo apt-get install mingw32,這是Ubuntu下的MinGW交叉編譯器。
然後是依賴,這樣的GDB要依賴expat和python的開發版本。如果是ubuntu底下直接編譯,apt-cache search一下他們的開發版本,然後sudo apt-get install一下就好了;給MinGW交叉編譯就麻煩了。先說expat,這個好辦,把http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz下載下來,然後:
./configure --prefix=[安裝目錄,如/home/c/mingw-gdb/expat] --host=i586-mingw32msvc
make
make install
會提示一些警告,無視即可。
Python就無語了,目前的GDB貌似最高支持Python 2.7,而2.7版本的Python本身不支持MinGW…… 好在有高手做了Patch,也寫了說明,可以參考這文章:http://mdqinc.com/blog/2011/10/cross-compiling-python-for-windows-with-mingw32/
但是,就算這樣,編譯也充滿挑戰,要修復很多問題,出來的Python還少「nt」模塊。就在我覺得沒辦法的時候,突然發現Windows版Qt提供的MinGW居然內置了Python開發包,位置在Tools/mingw48_32/opt,趕緊把它拷貝到Linux下,比如/home/c/mingw-gdb/python。當然,你也必須確保ubuntu下有可用的python。
然後,給GDB打一個補丁:
--- gdb-7.8/gdb/configure 2014-07-29 20:37:42.000000000 +0800
+++ gdb-7.8-old/gdb/configure 2014-08-30 00:08:27.122042706 +0800
@@ -8263,21 +8263,22 @@
# We have a python program to use, but it may be too old.
# Don't flag an error for --with-python=auto (the default).
have_python_config=yes
- python_includes=`${python_prog} ${srcdir}/python/python-config.py --includes`
+ python_config_tool=`echo ${python_prog} | sed "s#python.exe#python-config#g"`
+ python_includes=`${python_config_tool} --includes`
if test $? != 0; then
have_python_config=failed
if test "${with_python}" != auto; then
as_fn_error "failure running python-config --includes" "$LINENO" 5
fi
fi
- python_libs=`${python_prog} ${srcdir}/python/python-config.py --ldflags`
+ python_libs=`${python_config_tool} --ldflags`
if test $? != 0; then
have_python_config=failed
if test "${with_python}" != auto; then
as_fn_error "failure running python-config --ldflags" "$LINENO" 5
fi
fi
- python_prefix=`${python_prog} ${srcdir}/python/python-config.py --exec-prefix`
+ python_prefix=`${python_config_tool} --exec-prefix`
if test $? != 0; then
have_python_config=failed
if test "${with_python}" != auto; then
@@ -8343,12 +8344,12 @@
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+#if ac_fn_c_try_link "$LINENO"; then :
have_libpython=${version}
found_usable_python=yes
PYTHON_CPPFLAGS=$new_CPPFLAGS
PYTHON_LIBS=$new_LIBS
-fi
+#fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
CPPFLAGS=$save_CPPFLAGS
這個補丁的目的是強制為檢測到python。
然後給拷貝到Linux下的python開發包打一個補丁:
--- python-old/bin/python-config 2013-04-18 02:43:01.000000000 +0800
+++ python/bin/python-config 2014-08-30 00:53:16.630060288 +0800
@@ -1,4 +1,4 @@
-#!/temp/x32-480-posix-dwarf-r2/mingw32/opt/bin/python2.7.exe
+#!/usr/bin/python

import sys
import os
@@ -31,26 +31,23 @@

for opt in opt_flags:
if opt == '--prefix':
- print sysconfig.PREFIX
+ print '../python'

elif opt == '--exec-prefix':
- print sysconfig.EXEC_PREFIX
+ print '../python'

elif opt in ('--includes', '--cflags'):
- flags = ['-I' + sysconfig.get_python_inc(),
- '-I' + sysconfig.get_python_inc(plat_specific=True)]
+ flags = ['-I' + os.path.split(os.path.realpath(__file__))[0] + '/../include/python2.7']
if opt == '--cflags':
- flags.extend(getvar('CFLAGS').split())
+ flags += ['-fno-strict-aliasing -DMS_WIN32 -DMS_WINDOWS -DHAVE_USABLE_WCHAR_T -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes']
print ' '.join(flags)

elif opt in ('--libs', '--ldflags'):
- libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
- libs.append('-lpython'+pyver)
+ libs = ['-lm -lpython2.7 -Wl,--out-implib=libpython2.7.dll.a']
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
# shared library in prefix/lib/.
if opt == '--ldflags':
if not getvar('Py_ENABLE_SHARED'):
- libs.insert(0, '-L' + getvar('LIBPL'))
- libs.extend(getvar('LINKFORSHARED').split())
+ libs.insert(0, '-L' + os.path.split(os.path.realpath(__file__))[0] + '/../lib/python2.7/config')
print ' '.join(libs)

因為Linux下是無法運行開發包中的python.exe的,所以這個補丁借用了ubuntu的python。裡面的cflags和ldflags都是在Windows底下運行原始python-config獲得的。prefix和exec-prefix設成「../python」,可以在編譯完以後,把python開發包拷貝到gdb安裝目錄裡面的python子目錄,這樣運行GDB的時候就不需要設定PYTHONHOME環境變數了。
最後一個事情,確保你的Linux下有arm交叉編譯器,我的是arm-linux-gnueabihf,是啥target就寫啥。
准備工作做完了,開始配置和編譯:
./configure --with-expat --host=i586-mingw32msvc --target=arm-linux-gnueabihf --with-libexpat-prefix=[expat安裝位置] --with-python=[python開發包安裝位置/bin/python.exe]
make
make DESTDIR=[GDB安裝位置] install
然後把GDB安裝位置下面的所有文件拷貝到Windows下,再把python開發包拷貝到同目錄下的python子目錄,大功告成。
如果提示沒找到libpython2.7.dll,那就把GDB安裝目錄的python/bin下的拷貝到bin下。
如果發現生成的exe文件太大了,那就strip一下。
2015年9月12日追加:
在windows下調試時,一般會提示說載入不了共享庫,讓你用"set sysroot"或"set solib-search-path"之類設定路徑的。這個問題可以通過.gdbinit文件,用上面這兩條命令來設定路徑解決,如果想一勞永逸,可以在編譯的時候加上host_configargs環境變數來解決這個問題:
host_configargs=--with-sysroot=E:\MinGW\opt\sysroot-arm ./configure ...
或者
export host_configargs=--with-sysroot=E:\MinGW\opt\sysroot-arm
./configure ...

後面的路徑是你放在windows下的sysroot的位置。

❺ hcl模擬器,宿主機提示沒有可用的介面,請先配置host_1,問怎麼解決在線等 !

1 GECMlO開發板硬體構成
ARM處理器是一種支持16/32位雙指令集的高性能、低成本、低功耗的R ISC微處理器,目前已經佔領了75%以I:的32位RISC嵌入式產品f仃場。本文所選用的ARM920T微處理器屬於中端產品,應用也十分廣泛。$3C2410是32位低功耗RISC宏單元,其工作頻率為203 MHz,同時支持Thumbl6位精。簡指令集,從而能以較小的存儲空間需求,獲得32位的系統性能。64M位元組的SDRAM,由兩片K4S561632組成,工作在32位模式下;64M位元組NAND Flash,採用的是K9F1208,可以兼容16M,32M或128M位元組;10M乙太網介面,採用的是CS8900Q3,帶傳輸和連接指示燈;2路UART串列口,波特率可高達115200bps,並具有RS232電乎轉換電路Embedded·ICE(20腳標准JTAG)介面和並口式jTAG介面,支持ADS,SDT軟體的卜.載和調試以及FLASH的燒寫。
2 嵌入式Linux開發環境的搭建及開發工具的使用
2.1宿主機——目標機模式
進行項目開發前,先要做的是搭建一套基於Linux操作系統的應用開發環境,一般由目標板(GEC2410開發板)和宿主機(LiUUX虛擬機)所構成。如圖1所示。嵌入式系統通常是一個資源受限的系統,因此直接在嵌入式系統的硬體平台上編寫軟體比較困難,有時候甚拿是不可能的.目前一般採用的解決辦法是首先在通用計算機上編寫程序,然後通過交叉編譯生成目標平台七可以運行的二進制代碼格式,最後再下載到目標平台上的特定位置.卜運行.用來編譯這種程序的編譯器就叫交叉編譯器。為了不跟本地編譯器混淆,交叉編澤器的名字一般都有前綴。例如:arm.1inux—gcc。交叉開發環境是指編譯、鏈接和調試嵌入式應用軟體的環境,它與運行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式。

2.2 Linux伺服器交叉編譯環境的建立
Linux伺服器是嵌入式Linux內核編譯、應用程序開發、編譯等的公共平台,在一個嵌入式系統的開發過程中,有許多工作需要通過它來完成。交叉編譯工具用於編譯在目標系統上運行的嵌入式Linux內核及應用程序,包括編譯器、連接器、調試器以及代碼轉換J二具等實用程序,一般以瓜縮軟體包的方式提供給我們,稱為開發工具鏈(Toolchain).目前基於ARM架構的交叉編澤工具鏈為:allll-liuux.gcc-2.95.3。
1)GNU交叉工具鏈的下載
從ARM官方網站F載刪.arm.tinux.org.ak,可以從該站點下載2.95.3工具鏈:
ftp://tip.arm.Iinux.org.uk/pub/armlinux/toolehain/cross-2.95.3.tar.bz2
2)cross-2.95.3.tar.bz2包的安裝步驟
a.#mkdir/mr/local/arm;
b.#cp CROSS一2.95.3.tar.bz2/usr/local/ann;
C.#tar jxvf crog$一2.95.3.tar.bz2;
d.添加環境變數:在文{牛/ete/bashrc文件最後添加:
export PATH=/usr/local/arm/2.95.3/bin:$PATH:
e.工具鏈安裝完成。
2.3配置NFS服務的步驟

NFS服務就是將宿主機的一個目錄通過網路可以被掛載到其他計算機上。並且作為其他計算機的一個目錄,其目的就是讓不同的機器、不同的操作系統之間可以彼此共享文件。
NFS的使用分伺服器端和客戶端,其中伺服器端提供要共享的文件,客戶端通過掛載「mount」這一動作實現對共享文件的訪問操作。下面主要介紹GEC24 10開發板的Linux系統與虛擬機的LintLx通過NFS實現文件共享的方法與步驟:
1)在虛擬機linux配置nfs服務,編輯nfs配置文件/etdexports,設置共享目錄如:vi/etc/exports,添加:/root/nfs—share·(rw,sync,no—root—squash)。rW表示允許下位機讀寫該目錄,no_root_squash允許下位機以主機root用戶身份掛載根文件系統。
2)在虛擬機linux啟動NFS服務:(修改配置文件後就需要蕈新啟動施服務)#/etc/init.d/nfs reSTart或者用命令:#service nfs restarto.
3)防火牆的關閉。選擇系統設置一》安全級別,將安全級別改為「無防火牆」。
4)用交叉網線連接PC機(虛擬機)與開發板,目的讓兩個linux處在同一個網路內。
開發板的ip地址是:192.168.2.223,因此配置虛擬機ip為192.168.2開頭的ip地址,如可用下列命令配置:#ifcONfigethO 192.168.2.23。
5)在開發板linux系統中掛載虛擬機linux的NFS共享目錄,執行下列命令:#mkdir/tmp/nfs#mount—t nfs一0 nolock192.168.2.23:/root/nfs—share/trap/nfs。
2.4交叉調試器的製作
2.4.1交叉調試器的結構
程序的調試足檢杏程序正確性、可靠性、穩定性的重要手段,也是應用程序開發必不可少的組成部分。嵌入式軟體開發過程中的交叉調試與本地軟體開發過程中的調試方式有所差別。本地軟體開發調試器與被調試的程序往往運行在同一台計算機}:。而嵌入式軟體開發過程中,調試時採用的是在宿主機和目標機之間進行的交叉調試。調試器運行在宿主機,但被調試的進程卻是運行在目標板。調試器和被調試進程通過串口或者網路進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,並能夠改變被調試進程的運行狀態。
2.4.2製作交叉調試器的方法
1)解壓源碼包:tar zxf gdb一6.0.tar.gz
2)配置:cd gdb一6.0
mkdir build..arm..1inux
cd build..arm..1inux
../configure--target=arm·linux一一prefix=/usr/local/arm/2.95.3/
3)編譯:make
4)安裝:make install
在/usr/locaL/arm/2.95.3/bin/目錄下生成alTfl-linuxgdb工具
5)編譯生成針對f1.Eln處理器的gdbserver
a.進入sdb源代碼包中的gdb$erver目錄
cd sdb-6.0
cd gdb/gdbserver
b.配置生成gdbserver
chmod U+X configure
CC=arnl—linux—gcc./configure一一host=arm-linux
c.Make,生成gdbserver、gdbreplay
6)通過凼,將gdbserver/gdbreplay到目標板中
7)啟動目標板上的gdbserversabserver 192.168.1.88:2345 cross-teat其中192.168.1.88是目標板的IP地址。2345是任意指定的埠,也可以是其他埠。
8)啟動宿主機端arm.1inux-gdb調試器在宿主機的工作目錄中有對應的程序和源文件
#arm·hnux-柚CI『OS8一teat
(gdb)target remote 192.168.1.88:2345
連接遠程gdbserver
(sab)b main
設置斷點
(Sdb)C運行

❻ 1.centos linux軟體的分發有幾種方法,分別如何安裝

我現在用的是Linux系統,也經常安裝各種Linux上的軟體,根據我自己平時的使用,我就歸納一下。
最常用的分發方式應該是我們平時說的軟體源了,安裝軟體源的軟體非常方便,只要有網,用apt-get或者yum命令就能安裝了,我的電腦上的g++、gdb、eclipse-CDT就是用yum安裝的。
還有就是rpm包、deb包之類的方式,其實軟體源方式只是把軟體依賴性信息等放在了容器里,解決了安裝軟體時的軟體依賴性問題,實際安裝的還是RPM和deb軟體包,直接下載RPM包或者deb包安裝,需要面臨軟體依賴性問題,有軟體依賴安裝的時候會有提示,按照它的提示把依賴的那些軟體安裝上就好了。
另外的一些分發方式是以壓縮包的形式發布軟體。最常見的是以源碼方式發布,把所有的源碼打包,你下載下來需要先解壓,解壓後在命令行切換到源碼目錄,然後編譯安裝。編譯安裝的步驟都一樣,你可以網路一下,編譯安裝所依賴的不是軟體,而是函數庫,如果你的系統上沒有相應的函數庫,編譯的時候會報錯,這是編譯源碼安裝比較煩人的地方,不過我每次都安裝成功了,呵呵。
還有直接以二進制文件形式發布軟體的,也是一個壓縮包,有點像Windows系統上的綠色軟體,下載解壓後直接就能運行,這樣的軟體我遇到了幾個,像圖形界面調試器Affinic Debugger GUI、Web漏洞掃描工具Vega都是這樣發布的,,我的習慣是把它們的路徑加入到alias中,自己起一個別名,方便用命令啟動。
還有的軟體是以單個二進制文件發布的,這個二進制文件是個安裝器,而且往往是圖形界面的安裝器,和Windows系統的軟體發布類似,安裝這類軟體就是運行這個二進制文件之後點擊下一步下一步,虛擬機軟體VMware Workstation、入侵工具Metasploit就是這樣發布的。注意一點,把二進制安裝器下載下來之後,要先用chmod命令給他加x可執行許可權,然後運行時加當前目錄運行。
還有用shell腳本發布的,就是一個後綴.sh的文件,支付寶的Linux版瀏覽器安全插件就是用.sh文件來安裝的,在終端運行這個shell就可以了。

❼ vs2020怎麼遠程調試gdb

vs如何遠程調試
找到VS的快捷鍵,右鍵菜單,凳拍念打開文件所在位置
在安裝路徑找到如下路徑,目標伺服器若是32位操作系統選擇x86否則就選擇x64文件夾
復制如上文件夾到遠程棗困伺服器並且打開文件夾找到如下exe程序
芝士回答,石版權必究,未一經許可西,值處不得轉載
運行exe,如截圖選擇後點擊確定
在自己本機電腦上運行vs,找到如下選項中附加到進程
一正邊賀和則帶目且眾礦便院,易紅細。
選擇遠程調試,輸入遠程伺服器地址,回車會出現應用伺服器上的進程,選擇需要附加的進程,點擊調試即可

❽ 求助,我在linux下安裝的Qt5為什麼用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 然後進行安裝即可

❾ 嵌入式Linux的GDB遠程調試如何實現呢

有道啟新嵌入式研究院——遠程調試環境由宿主機GDB和目標機調試stub共同構成,兩者通過串口或TCP連接。使用GDB標准遠程串列協議協同工作,實現對目標機上的系統內核和上層應用的監控和調試功能。調試stub是嵌入式系統中的一段代碼,作為宿主機GDB和目標機調試程序間的一個媒介而存在。

就目前而言,嵌入式Linux系統中,主要有三種遠程調試方法,分別適用於不同場合的調試工作:用ROM Monitor調試目標機程序、用KGDB調試系統內核和用gdbserver調試用戶空間程序。這三種調試方法的區別主要在於,目標機遠程調試stub的存在形式的不同,而其設計思路和實現方法則是大致相同的。

而我們最常用的是調試應用程序。就是採用gdb+gdbserver的方式進行調試。在很多情況下,用戶需要對一個應用程序進行反復調試,特別是復雜的程序。採用GDB方法調試,由於嵌入式系統資源有限性,一般不能直接在目標系統上進行調試,通常採用gdb+gdbserver的方式進行調試。Gdbserver在目標系統中運行,gdb則在宿主機上運行。

要進行GDB調試,目標系統必須包括gdbserver程序,宿主機也必須安裝gdb程序。一般linux發行版中都有一個可以運行的gdb,但開發人員不能直接使用該發行版中的gdb來做遠程調試,而要獲取gdb的源代碼包,針對arm平台作一個簡單配置,重新編譯得到相應gdb.gdb的源代碼包可以從http://ftp.cs.pu.e.tw/Linux/sourceware/gdb/releases/下載,最新版本為gdb-6.4.下載到某個目錄,筆者下載到自己的用戶目錄:/home/vicky.下載完後,進入/home/vicky目錄,配置編譯步驟如下:
#tar jxvf gdb-6.4-tar-bz2
#cd gdb-6.4
#./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
#make
(這一步的時候可能會有問題,提示一個函數中(具體函數名不記得了)parse error,就是unsigned前邊多了一個」}」,你用vi進入那一行把它刪掉就行了。)
#make install
#export PATH=$PATH:/usr/local/arm-gdb
進入gdbserver目錄:
#./configure --target=arm-linux –host=arm-linux
#make CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
(這一步要指定arm-linux-gcc的位置,可能跟你的不一樣)
沒有錯誤的話就在gdbserver目錄下生成gdbserver可執行文件,把它燒寫到flash的根文件系統分區,或通過nfs mount的方式都可以。只要保證gdbserver能在開發板上運行就行。

下面就可以用gdb+gdbserver調試我們開發板上的程序了。在目標板上運行gdbserver,其實就是在宿主機的minicom下,我的red hat linux裝在vmware下的。我是在minicom下#mount 192.168.2.100:/ /tmp後做的(這里參數-o nolock可以不加,不加這一步執行得反而更快些),hello和gdbserver都是位於linux根目錄下,把主機根目錄掛在到開發板的/tmp目錄下。
要進行gdb調試,首先要在目標系統上啟動gdbserver服務。在gdbserver所在目錄下輸入命令:
(minicom下)
#cd /tmp
#./gdbserver 192.168.2.100:2345 hello
192.168.2.100為宿主機IP,在目標系統的2345埠開啟了一個調試進程,hello為要調試的程序。
出現提示:
Process /tmp/hello created: pid=80
Listening on port 2345
(另一個終端下)
#cd /
#export PATH=$PATH:/usr/local/arm-gdb/bin
#arm-linux-gdb hello
(gdb) target remote 192.168.2.223:2345
(192.168.2.223為開發板IP)
出現提示:
Remote debugging using 192.168.2.223:2345
[New thread 80]
[Switching to thread 80]
0x40002a90 in ??()
同時在minicom下提示:
Remote debugging from host 192.168.2.100
(gdb)
連接成功,這時候就可以輸入各種gdb命令如list、run、next、step、break等進行程序調試了。
以上針對通過nfs mount和tftp的方式,只能在主機上調試好後下載到開發板上運行,如果有錯誤要反復這個過程,繁瑣不說,有些程序只能在開發板上調試。所以筆者採用了gdbserver的遠程調試方式。希望對大家調試程序有用!

❿ linux 如何更新gdb

linuxgdb安裝步驟如下:

1. 首先可以使用命令「 rpm -qa |grepgdb"查詢系統中是否安裝了gdb軟體包,如果安裝了,應該顯示如下:

[root@localhost~]#rpm-qa|grepgdb
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 gdbgdb-6.8-37.el55. 如果安裝不成功,檢查一下錯誤信息,有可能是因為少安裝了一些關聯軟體,根據提示安裝即可。

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91