Fedora12上编译安装gdb-7.2
在Fedora12上編譯安裝gdb-7.2:編譯安裝gdb和gdbserver
1. 下載gdb7.2:? ftp://sourceware.org/pub/gdb/releases/gdb-7.2a.tar.bz2
2. 編譯安裝gdb
2.1 解壓:
[zcm@~ #1]$cd /mnt/hgfs/opensource/ [zcm@opensource #2]$ls a52dec ffmpeg-1.2.3 libavc1394-0.5.4 libmad-0.15.1b libxcb-1.6 RTSP__live555 xcb-proto-1.6 build.sh gdb-7.2a.tar.bz2 libbluray-0.3.0 libpthread-stubs-0.3 linux-2.6.31.5 util-keysyms-0.3.6 doxygen-1.8.5 install-tl-20130904 libdc1394-2.2.1 libraw1394-2.0.5 live vlc-2.0.5 [zcm@opensource #3]$tar -jxvf gdb-7.2a.tar.bz2 gdb-7.2/README gdb-7.2/Makefile.in gdb-7.2/configure ......2.2 編譯并安裝
首先進(jìn)入gdb解壓后的目錄:cd gdb-7.2
下面這個(gè)腳本是我自己整理的,包含了編譯安裝的一系列過(guò)程。但是在具體編譯安裝時(shí)我會(huì)選擇分步執(zhí)行,一方面為了安全,另一方面就是當(dāng)有錯(cuò)誤出現(xiàn)時(shí)能及時(shí)地看到。
編譯安裝時(shí)主要是通過(guò)修改腳本中n的值或是注釋一些語(yǔ)句來(lái)完成!
腳本的內(nèi)容相信大家都看得明白,我也就不作解釋了!
3. 編譯并安裝gdbserver
[zcm@gdb-7.2 #18]$cd gdb/gdbserver/ [zcm@gdbserver #19]$ls build.sh build.sh [zcm@gdbserver #20]$cat build.sh #!/bin/shn=1if [ $n -eq 0 ]; thenTARGET_DIR=/opt/arm-gdbserver-7.2mkdir -p $TARGET_DIRchown -R zcm:zcm $TARGET_DIR./configure --prefix=$TARGET_DIR --target=arm-arago-linux-gnueabi --host=arm-arago-linux-gnueabi elsemake CC=arm-arago-linux-gnueabi-gcc#make install fi [zcm@gdbserver #21]$同樣地,上面的build.sh是包含編譯并安裝gdbserver的一系列語(yǔ)句。
但是在安裝時(shí)卻出現(xiàn)錯(cuò)誤:/usr/bin/install: cannot stat `libinproctrace.so': No such file or directory
經(jīng)上網(wǎng)搜索找到答案,只要修改Makefile.in文件中的第167行即可,改為“if [ x${IPA_DEPFILES} != x ]; then \”
因?yàn)镸akefile是在執(zhí)行configure時(shí)引入Makefile.in后創(chuàng)建的,這樣修改后,下次再執(zhí)行configure也不會(huì)再出錯(cuò)了!
參考網(wǎng)址:
http://blog.chinaunix.net/uid-22525389-id-160160.html
http://www.cppblog.com/zhangyq/archive/2010/09/02/125464.html
4. 環(huán)境變量的配置(略)
補(bǔ)充說(shuō)明:
在使用編譯出來(lái)的gdb進(jìn)行交叉調(diào)試時(shí),發(fā)現(xiàn)經(jīng)常會(huì)出現(xiàn):“Remote?'g'?packet?reply?is?too?long?”這個(gè)錯(cuò)誤。在網(wǎng)上搜索后找到答案:
需要修改gdb-7.2/gdb/remote.c文件,將第5686行:
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;elsersa->regs[i].in_g_packet = 1;}//error (_("Remote 'g' packet reply is too long: %s"), rs->buf);}然后重新編譯、安裝即可!
參考網(wǎng)址:http://hi.baidu.com/285988185/item/33cc0e047be026e6fe240d4c
總結(jié)
以上是生活随笔為你收集整理的Fedora12上编译安装gdb-7.2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: eclipse 改java版本_修改ec
- 下一篇: arduino雨滴传感器和舵机控制