利用print 命令可以檢查各個變量的值。
(gdb) print p (p為變量名)
print 是gdb的一個功能很強的命令,利用它可以顯示被調(diào)試的語言中任何有效的表達式。表達式除了包含你程序中的變量外,還可以包含以下內(nèi)容:
對程序中函數(shù)的調(diào)用
(gdb) print find_entry(1,0)
數(shù)據(jù)結(jié)構(gòu)和其他復(fù)雜對象
(gdb) print *table_start
={e=reference=’\000’,location=0x0,next=0x0}
值的歷史成分
(gdb)print (為歷史記錄變量,在以后可以直接引用的值)
人為數(shù)組
人為數(shù)組提供了一種去顯示存儲器塊(數(shù)組節(jié)或動態(tài)分配的存儲區(qū))內(nèi)容的方法。早期的調(diào)試程序沒有很好的方法將任意的指針換成一個數(shù)組。就像對待參數(shù)一樣,讓我們查看內(nèi)存中在變量h后面的10個整數(shù),一個動態(tài)數(shù)組的語法如下所示:
base@length
因此,要想顯示在h后面的10個元素,可以使用h@10:
(gdb)print h@10
=(-1,345,23,-234,0,0,0,98,345,10)
whatis命令可以顯示某個變量的類型
(gdb) whatis p
type = int *
要想運行準(zhǔn)備調(diào)試的程序,可使用run命令,在它后面可以跟隨發(fā)給該程序的任何參數(shù),包括標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出說明符(<;和>;)和shell通配符(*、?、[、])在內(nèi)。如果你使用不帶參數(shù)的run命令,gdb就再次使用你給予前一條run命令的參數(shù),這是很有用的。利用set args 命令就可以修改發(fā)送給程序的參數(shù),而使用show args 命令就可以查看其缺省參數(shù)的列表。
(gdb) file a.out //加載被調(diào)試的可執(zhí)行程序文件。
(gdb)set args –b –x
(gdb) show args
(gdb)r //執(zhí)行程序
backtrace命令為堆棧提供向后跟蹤功能。
Backtrace 命令產(chǎn)生一張列表,包含著從最近的過程開始的所有有效過程和調(diào)用這些過程的參數(shù)。
List
(gdb) list line1,line2
查看源代碼
list lineNum 在lineNum的前后源代碼顯示出來
list 列出當(dāng)前行的后面代碼行
list - 列出當(dāng)前行的前面代碼行
list function
set listsize count
設(shè)置顯示代碼的行數(shù)
show listsize
顯示打印代碼的行數(shù)
list first,last
顯示從first到last的源代碼行
這個你撥打我們客服問問。
定額庫顯示不了數(shù)據(jù)? 我的回答:顯示不了什么數(shù)據(jù)?有提示嗎?是在哪個界面里不出現(xiàn)數(shù)據(jù)的!最好在把問題描述下!
可以考慮自己在費用程序中加一行獨立費子目,然后直接輸入數(shù)據(jù)
2009年12月29日,程序調(diào)試工具 GDB 7.0.1 發(fā)布,新版本修正了7.0版本的一些嚴(yán)重的堆棧溢出bug,這些bug可能導(dǎo)致 GDB 調(diào)試進程中斷,修正了在 FreeBSD 和 IRⅨ 系統(tǒng)下無法編譯的問題,增加了對 Thumb2調(diào)試的支持,還有其他一些小bug的修復(fù)。
2010年03月19日,GDB 7.1 發(fā)布,
詳細改進內(nèi)容:多程序調(diào)試的支持;
位置獨立的可執(zhí)行文件(派)調(diào)試的支持;
新的目標(biāo)(包括一個模擬器):Xilinx MicroBlaze和瑞薩RX;
Python支持增強;
c 支持?jǐn)U展;
新tracepoint功能;
過程記錄的改進;
遠程協(xié)議擴展。
2010年09月06日 ,GDB 7.2 發(fā)布,
該版本改進記錄:
⒈ 支持D語言
⒉ C 改進,支持參數(shù)依賴查找ADL,靜態(tài)常量類成員和改進了用戶自定義操作符的支持
⒊ Python 調(diào)試的改進,包括斷點、符號、符號表、程序空間、線程等可通過命令行進行操作
⒋ Furthermore,enhancements were made for tracepoints and for GDBserver.在跟蹤點和GDB程序上有了改善。
⒌ 支持 ARM Symbian 平臺
⒍ 其他方面的改進和bug修復(fù)。
2011年08月26日,GDB 7.3a 發(fā)布,
變化:
1。GDB可以理解線程的名字。
2。這個命令”線程名稱”(指定一個名稱)和“線程找到[REGEXP]”(匹配名稱、目標(biāo)ID,或者額外的信息)被添加。
3。Python腳本支持大大增強。
4。在c 的支持,異常處理是提高,模板參數(shù)放在范圍在一個實例化時調(diào)試。
5。線程調(diào)試的核心轉(zhuǎn)儲在GNU / Linux成為可能。
6。最初支持C語言版本的OpenCL。
7。許多其他改進。
一般來說,GDB主要幫助你完成下面四個方面的功能:
1、啟動你的程序,可以按照你的自定義的要求隨心所欲的運行程序。
2、可讓被調(diào)試的程序在你所指定的調(diào)置的斷點處停住。(斷點可以是條件表達式)
3、當(dāng)程序被停住時,可以檢查此時你的程序中所發(fā)生的事。
4、你可以改變你的程序,將一個BUG產(chǎn)生的影響修正從而測試其他BUG。
break命令(可以簡寫為b)可以用來在調(diào)試的程序中設(shè)置斷點,該命令有如下四種形式:
break line-number 使程序恰好在執(zhí)行給定行之前停止。
break function-name 使程序恰好在進入指定的函數(shù)之前停止。
break line-or-function if condition 如果condition(條件)是真,程序到達指定行或函數(shù)時停止。
break routine-name 在指定例程的入口處設(shè)置斷點
如果該程序是由很多原文件構(gòu)成的,你可以在各個原文件中設(shè)置斷點,而不是在當(dāng)前的原文件中設(shè)置斷點,其方法如下:
(gdb) break filename:line-number
(gdb) break filename:function-name
要想設(shè)置一個條件斷點,可以利用break if命令,如下所示:
(gdb) break line-or-function if expr
例:
(gdb) break 46 if testsize==100
從斷點繼續(xù)運行:continue 命令
1.顯示當(dāng)前gdb的斷點信息:
(gdb) info break
他會以如下的形式顯示所有的斷點信息:
Num Type Disp Enb Address What
1 breakpoint keep y 0x000028bc in init_random at qsort2.c:155
2 breakpoint keep y 0x0000291c in init_organ at qsort2.c:168
刪除指定的某個斷點:
(gdb) delete breakpoint 1
該命令將會刪除編號為1的斷點,如果不帶編號參數(shù),將刪除所有的斷點
(gdb) delete breakpoint
禁止使用某個斷點
(gdb) disable breakpoint 1
該命令將禁止斷點1,同時斷點信息的 (Enb)域?qū)⒆優(yōu)?n
允許使用某個斷點
(gdb) enable breakpoint 1
該命令將允許斷點1,同時斷點信息的 (Enb)域?qū)⒆優(yōu)?y
清除源文件中某一代碼行上的所有斷點
(gdb)clear number
注:number 為源文件的某個代碼行的行號
2.設(shè)置條件斷點
例子:
#includeintmain(void) { inti=0; intsum=0;for(i=1;i<=200;i ) { sum =i; }printf("%d ",sum); return0; }
gdb可以設(shè)置條件斷點,也就是只有在條件滿足時,斷點才會被觸發(fā),命令是“break … if cond”。以上面程序為例:
(gdb)start Temporarybreakpoint1at0x4004cc:filea.c,line5. Startingprogram:/data2/home/nanxiao/aTemporarybreakpoint1,main()ata.c:5 5inti=0; (gdb)b10ifi==101 Breakpoint2at0x4004e3:filea.c,line10. (gdb)r Startingprogram:/data2/home/nanxiao/aBreakpoint2,main()ata.c:10 10sum =i; (gdb)psum $1=5050
可以看到設(shè)定斷點只在i的值為101時觸發(fā),此時打印sum的值為5050。
whatis:識別數(shù)組或變量的類型
ptype:比whatis的功能更強,他可以提供一個結(jié)構(gòu)的定義
set variable = value:將值賦予變量
print variable = value or p variable = value : 除了顯示一個變量的值外,還可以用來賦值
next 不進入的單步執(zhí)行
step 進入的單步執(zhí)行如果已經(jīng)進入了某函數(shù),而想退出該函數(shù)返回到它的調(diào)用函數(shù)中,可使用命令finish
call name 調(diào)用和執(zhí)行一個函數(shù)
(gdb) call gen_and_sork(1234,1,0)
(gdb) call printf(“abcd”)
=4
finish 結(jié)束執(zhí)行當(dāng)前函數(shù),顯示其返回值(如果有的話)
有一組專用的gdb變量可以用來檢查和修改計算機的通用寄存器,gdb提供了目 前每一臺計算機中實際使用的4個寄存器的標(biāo)準(zhǔn)名字:
$pc :程序計數(shù)器
$fp :幀指針(當(dāng)前堆棧幀)
$sp :棧指針
$ps :處理器狀態(tài)
gdb通??梢圆蹲降桨l(fā)送給它的大多數(shù)信號,通過捕捉信號,它就可決定對于正在運行的進程要做些什么工作。例如,按CTRL-C將中斷信號發(fā)送給gdb,通常就會終止gdb。但是你或許不想中斷gdb,真正的目的是要中斷gdb正在運行的程序,因此,gdb要抓住該信號并停止它正在運行的程序,這樣就可以執(zhí)行某些調(diào)試操作。
Handle命令可控制信號的處理,他有兩個參數(shù),一個是信號名,另一個是接受到信號時該作什么。幾種可能的參數(shù)是:
nostop 接收到信號時,不要將它發(fā)送給程序,也不要停止程序。
stop 接受到信號時停止程序的執(zhí)行,從而允許程序調(diào)試;顯示一條表示已接受到信號的消息(禁止使用消息除外)
print 接受到信號時顯示一條消息
noprint 接受到信號時不要顯示消息(而且隱含著不停止程序運行)
pass 將信號發(fā)送給程序,從而允許你的程序去處理它、停止運行或采取別的動作。
nopass 停止程序運行,但不要將信號發(fā)送給程序。
例如,假定你截獲SIGPIPE信號,以防止正在調(diào)試的程序接受到該信號,而且只要該信號一到達,就要求該程序停止,并通知你。要完成這一任務(wù),可利用如下命令:
(gdb) handle SIGPIPE stop print
請注意,UNⅨ的信號名總是采用大寫字母!你可以用信號編號替代信號名如果你的程序要執(zhí)行任何信號處理操作,就需要能夠測試其信號處理程序,為此,就需要一種能將信號發(fā)送給程序的簡便方法,這就是signal命令的任務(wù)。該命令的參數(shù)是一個數(shù)字或者一個名字,如SIGINT。假定你的程序已將一個專用的SIGINT(鍵盤輸入,或CTRL-C;信號2)信號處理程序設(shè)置成采取某個清理動作,要想測試該信號處理程序,你可以設(shè)置一個斷點并使用如下命令:
(gdb) signal 2
continuing with signal SIGINT⑵
該程序繼續(xù)執(zhí)行,但是立即傳輸該信號,而且處理程序開始運行。
GDB是一個強大的命令行調(diào)試工具。大家知道命令行的強大就是在于,其可以形成執(zhí)行序列,形成腳本。UNⅨ下的軟件全是命令行的,這給程序開發(fā)提代供了極大的便利,命令行軟件的優(yōu)勢在于,它們可以非常容易的集成在一起,使用幾個簡單的已有工具的命令,就可以做出一個非常強大的功能。
于是UNⅨ下的軟件比Windows下的軟件更能有機地結(jié)合,各自發(fā)揮各自的長處,組合成更為強勁的功能。而Windows下的圖形軟件基本上是各自為營,互相不能調(diào)用,很不利于各種軟件的相互集成。在這里并不是要和Windows做個什么比較,所謂“寸有所長,尺有所短”,圖形化工具還有時不如命令行的地方。2100433B
格式:pdf
大小:16KB
頁數(shù): 4頁
評分: 4.4
大數(shù)據(jù)時代下的戶外 LED顯示屏 一、戶外 LED顯示屏面臨的問題和機遇 今年 2月份,國務(wù)院公布了《關(guān)于第二批取消 152項中央指定地方實施行政 審批事項的決定》 ,其中取消了戶外廣告登記, 這對于戶外廣告行業(yè)來說無疑是 極大的利好,此舉可以提高了戶外廣告播出的效率, 大大降低了戶外 LED大屏空 置率,也進一步擴大 LED顯示大屏的市場份額。 【問題】 1)市場增速緩慢 對于一級城市來說, 傳統(tǒng)戶外媒體公司已占據(jù)大量都市商業(yè)圈位置, 但近年 除了成本方面壓力逐漸顯現(xiàn), 占地成本、屏體成本及運營成本的增加外, 互聯(lián)網(wǎng) 和新媒體廣告平臺的飛速發(fā)展也使數(shù)字戶外 LED媒體增速緩慢,獲利率有所下 降。 2)戶外 LED廣告創(chuàng)意乏力 相比西方三大陣營廣告, 我國廣告沿襲美國的實效廣告, 但過于注重形式和 執(zhí)行,一味的追求大場面、大制作,創(chuàng)意的嚴(yán)重缺乏凸顯。由此也致使戶外 LED 顯示屏一直以來都
格式:pdf
大小:16KB
頁數(shù): 4頁
評分: 4.7
無磁水表電子遠傳數(shù)據(jù)的原理及計量顯示解析 無磁電子遠傳水表具有無磁信號采集、水量計量和儲 存、數(shù)據(jù)遠傳等功能。在經(jīng)過長期驗證的傳統(tǒng)單多流速流量 計基礎(chǔ)上,去除從屬計數(shù)齒輪盒,減少了磨損及傳動阻力、 延長了獨立葉輪的機械壽命;通過無磁技術(shù)讀取流量信號, 持久穩(wěn)定可靠。據(jù)海威茨無磁水表項目研發(fā)總監(jiān)姚永勝介紹 遠傳無磁水表目前叫法很多,有脈沖水表、電子水表、發(fā)信 水表、開關(guān)式遠傳水表、刻度識別式水表、直讀式遠傳水表 等。不管叫法如何,遠傳水表統(tǒng)一的功能便是可以遠程傳輸 水表的計量數(shù)據(jù)。相應(yīng)的遠傳水表可能最常發(fā)生的問題是遠 傳用水量統(tǒng)計值與基表顯示計算值可能發(fā)生的不對應(yīng)、不一 致。 遠傳無磁水表應(yīng)用了遠傳計量統(tǒng)計系統(tǒng),其抄表功能連 接了水表數(shù)據(jù)采集硬件軟件與供水繳費平臺處理系統(tǒng)之間 的協(xié)作。遠傳水表集抄系統(tǒng)的抄表功能,可以采用 CPU、POS 機、便攜電腦等設(shè)備。由抄表人員攜帶抄表設(shè)備,在抄表現(xiàn)
OpenWrt是在實現(xiàn)路由器功能方面很受歡迎的開源軟件之一。本書基于OpenWrt,詳細介紹了智能路由器的開發(fā)。
本書共計15章,按照認(rèn)識路由器的順序進行編寫,介紹了智能路由器、開發(fā)環(huán)境及編譯分析、OpenWrt包管理系統(tǒng)、OpenWrt配置、軟件開發(fā)、GDB調(diào)試、網(wǎng)絡(luò)基礎(chǔ)知識、路由器基礎(chǔ)軟件模塊、常用軟件模塊、IP路由、DNS與DHCP、iptables防火墻、UCI防火墻、UPnP、網(wǎng)絡(luò)測試及分析工具等。豐富的理論知識和代碼示例可以幫助讀者深入認(rèn)識和理解OpenWrt技術(shù),并能夠提升開發(fā)水平和開發(fā)效率。
本書適合軟件架構(gòu)師、軟件開發(fā)工程師、軟件測試工程師以及計算機相關(guān)專業(yè)的學(xué)生閱讀。讀者通過閱讀本書,不僅可以掌握OpenWrt技術(shù),還能進一步提升自己的軟件開發(fā)水平。
由于光電倍增管增益高和響應(yīng)時間短,又由于它的輸出電流和入射光子數(shù)成正比,所以它被廣泛使用在天體光度測量和天體分光光度測量中。其優(yōu)點是:測量精度高,可以測量比較暗弱的天體,還可以測量天體光度的快速變化。天文測光中,應(yīng)用較多的是銻銫光陰極的倍增管,如RCA1P21。這種光電倍增管的極大量子效率在4200埃附近,為20%左右。還有一種雙堿光陰極的光電倍增管,如GDB-53。它的信噪比的數(shù)值較RCA1P21大一個數(shù)量級,暗流很低。為了觀測近紅外區(qū),常用多堿光陰極和砷化鎵陰極的光電倍增管,后者量子效率最大可達50%。
普通光電倍增管一次只能測量一個信息,即通道數(shù)為1。矩陣。由于通道數(shù)受陽極末端細金屬絲的限制,只做到上百個通道。
七波長高溫計是MSTC一E16多光譜高溫計的組成部分之一。圖1給出了七波長高溫計的原理方框圖。
卡塞格林望遠鏡將材料表面成象在入射小孔盤(2)上。人射小孔盤圓周上加工有六個小孔,最小的有效直徑為0.82毫米。選擇小孔就可以限制被測表面元的大小。進人小孔的輻射經(jīng)鏡(3)準(zhǔn)直,通過干涉濾光片組(4)、減光玻璃`片(5),達到GDB一239型光電倍增管(6)的陰極靈敏面上。干涉濾光片組(4)裝在轉(zhuǎn)盤的圓周上,轉(zhuǎn)盤用同步電機驅(qū)動。濾光片的峰值波長為4970埃、5990埃、6510埃、6990埃、5010埃、名990埃、9978埃。減光玻璃片(5)采用與被測對象的光譜分布、光電倍增管的光譜靈敏度相匹配的玻璃片,既起到了壓縮光電倍增管陽極輸出的動態(tài)范圍,也起到了使光電倍增管運行在線性區(qū)的作用。與原論證方案中采用對數(shù)放大器相比,還提高了系統(tǒng)精度。因為對數(shù)放大器受對數(shù)元件的影響,目前只能達到1%的精度。光電倍增管輸出的訊號經(jīng)前置放大、主放大,最后由電子示波器顯示,照相機拍照記錄。
這臺高溫計的訊號周期為10毫秒,它隱含著一個假設(shè),即在10毫秒內(nèi),材料表面溫度和輻射特性是不變的。測量結(jié)果證明,這個假設(shè)是正確的。當(dāng)燒蝕處于穩(wěn)態(tài)時,周期間的訊號變化不大。 2100433B