iT邦幫忙

0

雙向Bug解決辦法

  • 分享至 

  • xImage

請問大家一下,當大家遇到程式碼雙向Bug時,兩者都可行,然後陷入無窮迴圈當中,能否用白話文來解釋一下如何排除錯誤呢?
是把所有程式碼都從頭跑一次還是檢視一次呢?

如何抓出問題點以及解決問題辦法,我遇到了非電腦的事情,但覺得這種排除錯誤的方式,或許大家分享可以讓我走出這Bug迴圈當中,如果有執行範例,那真的感激不盡,但是著重在各位的思考邏輯,謝謝大家分享

看更多先前的討論...收起先前的討論...
厚厚 iT邦研究生 5 級 ‧ 2024-08-15 08:36:43 檢舉
可否先解釋何謂雙向Bug?
SunM0on iT邦新手 4 級 ‧ 2024-08-15 08:50:35 檢舉
要問問題就別自定義名詞,要自定義名詞也要讓人看懂,你自己網上蒐一下,甚麼叫雙向bug?
誠心建議,人生遇到問題,請找朋友或是社工協助,不是來it論壇尋求解答。
Rebacce iT邦新手 4 級 ‧ 2024-08-17 01:11:35 檢舉
對不起,我曾看到有種錯誤是無論點選甚麼選項,最後都是把所有的選擇導向一樣的頁面,那這樣請問該如何稱呼這種錯誤,而身為這行的翹楚的大家是如何建構腦海的概念除錯呢
sam0407 iT邦大師 1 級 ‧ 2024-08-19 09:31:48 檢舉
樓上說的把所有錯誤導到一樣頁面的這種作法,是近年來因應快速開發發展出來的現象,畢竟新的功能頁面都寫不完了,所以至少先不要讓使用者直接看到excption丟出來的訊息,但如果是會長久會使用系統,還是應該要針對常發生的例外情況作獨立的處理,使用者體驗及後續維護才會輕鬆。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
sam0407
iT邦大師 1 級 ‧ 2024-08-15 12:08:06
最佳解答

我個人是將您這類問題定義為:不可重現的偶發性問題("偶發"跟原PO"雙向"無關,單純就字面上意思:偶爾就會發生)

偶發性問題:如果可以重現Bug,例如:您知道作了A,一定會出現結果Z,那就直接在A上面找原因,是硬體就換掉,是軟體就重構或重寫。

不可重現的偶發性問題:基本上就只能用窮舉排除法來找問題(或是說當藉口拖時間),以硬體來說就是電腦會當機,先換RAM看看,問題還有就換Power/主板/CPU/換風扇/重灌OS,就一樣一樣的更換+觀察,處理到沒問題為止,我碰過最扯的個案是換機殼....

看更多先前的回應...收起先前的回應...
厚厚 iT邦研究生 5 級 ‧ 2024-08-15 14:40:25 檢舉

換機殼真的扯XDDD,會不會是壓迫排線之類的問題

sam0407 iT邦大師 1 級 ‧ 2024-08-15 16:14:56 檢舉

應該不是,這事發生在約30年前,那時還沒有小機箱,排線就算不整理空間也很大。

我維修的經驗上,也的確碰過換機殼問題才消失。
當下也覺得很扯。
但也不知道原因是什麼。
POWER鎖孔、主機板鎖柱、排線、信號排線....
所有的問題都查過了。也試過換新的板子。將裏面的東西全換新的。
就是問題還是一樣存在。
但只要放到另一個機殼就沒問題了。百思不得其解。
就連廠商也覺得莫名奇妙。

Rebacce iT邦新手 4 級 ‧ 2024-08-17 01:19:37 檢舉

我試過用排除法去想這bug真正的問題在哪,可是換機殼就像機台上擺乖乖一樣啊!(你是安慰我吧?)
那能否請教一個問題,先前大家在寫程式時,我知道程式碼在乎的是邏輯,有沒有一次就搞定的時候,沒有所謂的bug,而bug歸根究柢發生的原因是硬體和軟體都會發生的嗎?

sam0407 iT邦大師 1 級 ‧ 2024-08-19 09:57:09 檢舉

原本是有想細寫關於軟體的bug的,但是相較硬體太複雜了,想偷個懶卻被原PO Rebacce姐抓現行....

軟體的bug整體流程的邏輯錯誤應該比較少見,不然程式應該上不了線,會發生通常是在某些細部分支的判斷,可能是程式設計師打錯字/腦抽...等狀況而產生,或是沒仔細作邊際條件(極大值/極小值)的測試。

軟體發生不可重現的偶發性問題,若用排除法一支支的程式重構/重寫工程太浩大且風險太高,原本只是偶發小問題,最後變成每天發生,那可就被釘在恥辱牆上了。我個人的建議是在舊有的程式上加上詳細的Log記錄,Log記錄需包含但不限於:時間/程式名稱/使用者/作業狀態/變數值/例外....至少下次使用者反映他發生狀況時,您可以去看Log回推錯誤發生的狀態,可以試著在測試環境重現問題,進而解決問題。

我要發表回答

立即登入回答