台灣最大程式設計社群網站
線上人數
911
 
會員總數:240888
討論主題:186656
歡迎您免費加入會員
討論區列表 >> 心情甘苦談 >> [懸賞] 各種開發語言的 Bebug ( 除錯 偵錯) 技巧文章
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[懸賞] 各種開發語言的 Bebug ( 除錯 偵錯) 技巧文章
價值 : 500 QP  點閱數:8182 回應數:16

樓主

Pan01
中級專家
5722 2
2406 986
發送站內信

我發現 , 小舖的部分問題 , 提問人 如果懂得Debug 技巧 , 其實 就可以自己找到答案了.
尤其是那些可以用筆記本輸入的動態語言 (JS , ASP, PHP ......).

我自己是有找到幾篇, 不過總覺得都是 片面的訊息, 再加上有滿多是重複的內容.

所以, 想請大家幫忙找出內容不錯的文章, 整合這些資訊 給 有需要的人.

另外 , 個人 主要 是想找到 有 詳細介紹 "在不用工具下, 僅用Log進行 Debug" 的文章.

搜尋相關Tags的文章: [ Debug ] , [ 除錯 ] , [ 偵錯 ] ,
本篇文章發表於2012-04-25 13:34
== 簽名檔 ==
我不能直接給你範例, 我只能告訴你, 你Code中的錯誤在哪裡.
不給你範例, 是怕你用錯了範例的精神, 造成 解了 一個問題後製造出了 另外十個問題.
如果真的要 範例  自己 Google 吧 下對 關鍵字 一定可以 找到範例
若還是查不到 , 就請列出用了那些關鍵字 我再告訴你為何那些關鍵字會找不到你要的結果

多看、多參考、多觀摩(可以學到別人的方法和技巧,不會閉門造車)。
多寫、多練習、多實作(可以平衡自己的知識和能力,不會眼高手低)。
多想、多構思、多創新(可以鍛鍊思考的模式和廣度,不會墨守成規)。
多讀、多充電、多了解(可以提升學習的起點和動力,不會技術落後)。
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

KKBruce
捐贈 VP 給 KKBruce 檢舉此回應
各種開發語言的 Bebug ( 除錯 偵錯) 技巧文章
-------------^

Bebug --> Debug

這就是不用工具的 Debug.

^_^
本篇文章回覆於2012-04-25 16:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Pan01
檢舉此回應
奇怪 , 為何 Debug 會 打成 Bebug .....

難道是 剛睡醒 ... 手殘
本篇文章回覆於2012-04-25 17:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應


檢舉此回應

好奇怪,這個主題很好怎麼PO了兩天沒什麼人朋場,

小弟也是學習者,但覺得 Debug 經驗分享可能有點廣泛了,
畢竟是它是技術面的分享,更何況牽連許多程式語言,
我想樓主想到借由這篇主提廣泛蒐集(但有點難度)
在不用任何的工具輔助下,找些經典的文章,
小弟剛剛自己拜google大神一下確實很難找。

但是小弟覺得對程式設計沒概念的人,
即使有類似Visual Studio的專業輔助軟體,也未必能事半功倍。

前幾天小弟試用了Adobe Dreamweaver CS5.5
它支援了ASP ASP.NET C JSP PHP javascript jquery XML等等
Debug的功能讓我非常的驚訝,除了提示程式函式字元外,
它可以做到即時提醒各程式語法的錯誤,並支援各語言即時預覽執行得結果,
雖然這不是新聞了,但重點是支援了每個語言,
甚至現在的Visual Studio、Dreamweaver都有提供精靈模版,
連資料庫聯繫也可以套用精靈,還是有學習者弄得--霧殺殺。

我覺得學習態度還是要拿出來,學習或許是Debug最佳的工具。

我推薦一篇Jonathan Danylko 二十年來的程式設計心得

雖然跟Debug技術文章無關,但小弟覺得給大家應該受用不少。


本篇文章回覆於2012-04-27 11:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Pan01
檢舉此回應
同場 加映
解 bug 的心理陷阱:我的可以動
別當自作聰明的程式設計師(我認錯)

這樣 類似 的文章, 也請大家多加推薦.
本篇文章回覆於2012-04-27 12:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

香帥
檢舉此回應
談到debug最多的書應該是低階語言,
施威銘著作的組合語言的書,他寫的技術手冊共三集,
每一本.都有專章介紹debug
亦即用組合語言編譯成執行檔時,例如編成 example.exe
他會教執行debug程式,例如
debug example.exe
然後用各參數去看各旗標及機器碼的變化
到現代的各種高階語言,各作者的出書,有些會有專章討論
例如VisualBasic.Net完全探索(學貫出版,羅慧真著)
第9章偵錯工具及例外處理,就有比較完整的教學
包含如何開啟偵錯視窗,自動變數、區域變數、監看式、即時運算、呼叫堆疊等視窗,及討論中斷模式的逐步執行.
有些很少提到,有興趣者可到各書局去看一下,看目錄就知有沒介紹了

本篇文章回覆於2012-04-29 00:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

神來之筆
捐贈 VP 給 神來之筆 檢舉此回應
程式的debug, 這邊我視為問題來思考, 因為畫面上的錯誤或輸出不是你要的, 有時那麼單純
套用問題的解決,我把debug分五個步驟
1. 釐清與定義bug
2. 創造debug方案
3. 進行debug與選擇解決方案
4 執行修改程式
5. 測試修改程式與追蹤

執行以上步驟列舉個人實作經驗, 一般第一個步驟最難, 常抓不到頭緒

1.你要先還原真相, 鎖定問題
--可以模擬user操作,轉入user的資料, OS/瀏覽器/安裝的程式..,進行擬真的實驗
--測試案例是否有未考慮的範圍
--程式是否未依撰寫
--整理的系統部署環境的限制-DB, 網路, Storage, 使用者人數...

2.debug的方式
--下中斷點: 一般ide可以下中斷點,觀察變數的值
--code review
--製作更多測試案例
--monkey test:請不熟悉的人亂測
--memory dump, 設定條件自動dump
--在問題點附近加更細的try catch
--sql profile
--程式增加更詳盡的log
--尋求微軟技術支援,有時花8000比你搞2周還划算
--解析封包,web類的程式可能會用到,ajax debug很有用
--使用像ildasm, 可以查看使用元件的版本
--使用一些方法工具: 魚骨分析圖/brain storming...

3. 這裡開始進行debug, 先製作測試案例計畫, 預期要的結果和測試過程
debug出問題時可以用swot一些方法, 來進行決策分析和選擇

4. 執行程式修改, 如果時間允許可進行重構和壞味道消除

5. 測試和追蹤該方法是否有效或後遺症, 如果有自動案例測試, 可以省很多時間

以上是個人一點經驗, 也只能提供guide line, 細節需由個人經驗累積
本篇文章回覆於2012-05-01 08:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Pan01
檢舉此回應
多謝神來之筆 提供的guide line.

我會依此 guide line 來找 相關的文章.

也請大家 幫忙 找找.
本篇文章回覆於2012-05-01 12:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

dra
檢舉此回應
html+css+javascript Debug 神物
Google 瀏覽器 Chrome !!!
--
啥 不用工具 囧 飄走 ~~
本篇文章回覆於2012-05-01 12:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

dra
檢舉此回應
php 本身有個 debug 用的函式 var_dump 用來顯示變數型態跟內容, 非常好用
建義使用其它語言也自己模仿建立一個 var_dump 對 debug 會方便許多
--
我本身是改成 dump() 1.字比較少XD 2.加入換行 3.加入更多型態支援
本篇文章回覆於2012-05-01 12:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

dra
檢舉此回應
借問一個問題
"你好,我是\,我現在在你程式碼的註解裡面。"
什麼語言 \ 在註解理會發生問題 ??
--
這是笑話,但我看不懂 @@
笑話來源 : http://www.ptt.cc/bbs/joke/M.1335464929.A.824.html
本篇文章回覆於2012-05-01 13:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Pan01
檢舉此回應
"你好,我是全型空白,我現在在你的程式碼裡面。"
"你好,我是\,我現在在你程式碼的註解裡面。"
"你好,我是-,我也不曉得為什麼我會在這個參數前面"
"你好,我是=,我現在在你程式碼的if判斷式裡面。


這些是造成程式編譯失敗 或 執行錯誤的 Bug .

對於沒經驗的人是屬於難找的 Bug.

總而言之 , 很難笑的笑話.

==========================================
"你好,我是全型空白,我現在在你的程式碼裡面。"


真實範例 : http://www.blueshop.com.tw/board/show.asp?subcde=BRD201204302356460Y7&fumcde=FUM20041006152627A9N
本篇文章回覆於2012-05-01 15:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
我個人是自已寫一個類。將我想要看到的參數什麼的。都是輸送到一個文件堿d看。
一般還是會利用工具來追蹤,不過有時有些情況要實體運做下才有辦法知道的時候,就會利用這個類。

等程式開發完成時。因為我放debug的程式碼大多是

$Debug->($var1,$var2....);//test

所以開發完後,就會用正則清掉。
本篇文章回覆於2012-05-02 17:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

自然風
檢舉此回應
我自己的話這邊有兩個做法。



第一個做法其實後樓上大大一樣,我有一個自己寫的類別

而去執行相關的函式時就用




第二個做法這邊沒提到,我用的方式是在Global下的





不知道這邊也是和我一樣用這種方法嗎 ? 我個人覺得超好用的

本篇文章回覆於2012-05-29 16:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
全形空白.....跟bom字元有點差異


在程式碼裡面,只要有全形的空白,馬上就會編譯錯誤,
而bom字元問題通常發生在php...(include一個有bom字元的檔案)
總之, 真的要遇過的才能體會到...
本篇文章回覆於2012-06-03 17:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

MIS2000 Lab
檢舉此回應
給元發問者:

當您夢想這樣的捷徑時
您就不會進步了

這是初學者都想問的問題
但永遠沒有解答

如果有這種經驗傳承?
有這種短期訓練,那你也很快被取代了


因為這份工作跟作業員一樣,有sop,人人可取而代之

就算有SOP
你還是會發展出自己的經驗談

這種個人經驗 無可取代
^^^^^^^^^^^^^^^^^^^^^
所以資深者才有無可取代的價值(與薪資價格)


這是我寫得文章
希望對您有幫助

[給初學者的話] 你想像中的「速成」,跟我想的不一樣
http://www.dotblogs.com.tw/mis2000lab/archive/2012/05/17/fast_food_fast_learning.aspx

醒醒吧
本篇文章回覆於2012-07-21 10:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   

回覆
如要回應,請先登入.