介紹兩種調(diào)試程序的方法
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
大家在調(diào)試一個程序時,有時候可能這個程序很長,多到成百上千行的代碼,如果你的程序?qū)懙挠至銇y不堪,到了這種時候通常都不知道自己寫了些什么,有些人還比較懶,像我,連個注釋都不寫,但是我從來沒有被我的程序搞暈過,一般來說,不管你的程序是不是面向?qū)ο竦拈_發(fā)模式,在局部的程序代碼里,你的程序還是結(jié)構(gòu)式的,如果你沒有把一個模塊分成幾個小模塊去做,而是幾百行甚至上千行的代碼全在一個模塊里,那么一但出了問題,你恐怕哭都來不及,你不得不整天整天的找bug,就算你的程序運(yùn)行上沒有問題,而在設(shè)計上卻有[url=http://hackbase.com]漏洞[/url]什么的。。。。你找起來一定很累,還有分析別人的代碼很累吧,要是人家連個注釋都沒給你留,那你是不是很痛苦??以至于程序員都不愿意看別人寫的代碼。。。。。等等地,現(xiàn)在我就介紹大家兩種調(diào)試程序的方法,這些方法最適用于分析模塊代碼,可以將一段沒有任何注釋的代碼輕松的解析出來它的用途,好了先為大家介紹第一種:[br]一,流程編號[br]程序的主體就是流程控制,把流程搞清楚了,整個程序就看懂了,方法其實簡單:如果你的ide開發(fā)工具有對某行做標(biāo)記并且還可以編號的功能自然就方便很多,如果沒有就把源程序copy到記事本上,然后開始給控制流程編號,例如:[br]1 for(a=1,a++,,)[br]{ [br]2 if(a=10)[br]{[br]......[br]2 }[br]1 }[br]3 if(a=11)[br]{[br]printf("程序執(zhí)行有問題")[br]3 }
[p][/p] [p][/p] [p]在上面的例子中,編號的規(guī)則是:當(dāng)見到第一個流程控制就在它的開始處加一個號,然后接著往下找,找到一個流程控制就判斷一下它是舊流程結(jié)束還是新流程開始的,如果是舊流程的結(jié)束就再標(biāo)記上這個流程在開始處的標(biāo)號,如果腦子里亂了,不知道是多少了,就向上找直到找到目前最大的標(biāo)號(但是已經(jīng)被其它結(jié)束語句占有的不能算數(shù)),其實,你只要看到標(biāo)號開始呈下趨勢,那么你現(xiàn)在找到的最大標(biāo)號就是這個結(jié)束語句的標(biāo)號了------該流程的標(biāo)號!!還有,每個流程的標(biāo)號都是按順序依次遞增,越是里層的流程,標(biāo)號就最大,最外層的標(biāo)號最小。在標(biāo)號的同時你還可以留意一下,你最初的標(biāo)號是否已經(jīng)標(biāo)出了結(jié)束語句,如果是的話,你就應(yīng)該檢查一下,這個結(jié)束語句是不是有很明顯的錯誤,如:我的給最初的標(biāo)號是一,也就是第一層結(jié)構(gòu)的標(biāo)號是1,但是當(dāng)我標(biāo)到某個結(jié)束語句為1時卻發(fā)現(xiàn)下一行還剩著一個"}"這就很明顯不對了,這時有兩點(diǎn)原因,一,你標(biāo)號標(biāo)錯了,二,程序中多了一個結(jié)束語句,這時你就要好好檢查一下了,找出錯誤了就開始繼續(xù)做標(biāo)號,直到標(biāo)完,標(biāo)完了以后,你就可以開始分析這個程序了,只要是在兩個相同標(biāo)號這間的,都是一個小模塊,你把每個模塊的大體用途都分析出來(加上注釋),然后再再把這些模塊的用途放到一起就可以一眼看出來整個程序比較詳細(xì)的動作流程和它所能完成的任務(wù),還可以在注釋中很直觀的看出來這個程序中所存在的問題(前后矛盾,參數(shù)不存在,[url=http://hackbase.com]數(shù)據(jù)[/url]類型不符。。。。。。。。。等等,都很容易能看到)[br]二,簡化流程[br]當(dāng)你的一個比較復(fù)雜的程序,程序中有大但的流程控制,一層套一層,看得你眼花廖亂,恨不得把電腦砸了!!!~~~ :( 唉哪能呢,砸了電腦我玩兒什么呀???不過你實在氣不過了,你索性把程序刪它幾百行,哈哈是不是很過癮呢,不過給大家一個忠告,別忘了先備份呀,省得你又后悔~~~~~,方法是這樣的:先把你弄不懂的地方從最里邊的流程開始刪,由里向外一層一層的刪除,每刪一層就看看找到程序出錯的問題了嗎???沒有??繼續(xù)!!!直到刪到最外層,基本上是差不多了,這種方法就是可以把程序中那些看不懂的地方復(fù)雜的地方一步一步的簡化,直到問題清晰可見!!!! [/p] 該文章在 2010/7/5 0:17:42 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |