回覆列表
-
1 # 巖本扉
-
2 # 程式設計保姆
我碰到過程式的bug不計其數,其中最難除錯的bug應該是操作記憶體的程式碼了,就算找到產生bug的程式碼,自己也不知道什麼原因造成,總感覺被人家卡脖子的感覺。
倒如以上程式碼,寫個鍵盤鉤子監控使用者的鍵盤操作,有些機器可以執行,又些則不行了,百思不得其解,以下就是造成這個錯誤的程式碼。
這種程式碼我也是網上拷過來用的,只知道它的功能和語法,至於“fail to set data for{記憶體地址}為什麼出錯的低層邏輯演算法就完全不明白了。
為什麼會造成這種局面呢?那是因為核心演算法Delphi程式設計工具根本不會公開給你,而作為程式設計師的我只是懂得應用層罷了。
有個笑話,說現在的程式設計師都是“搜尋”程式設計,如將把網際網路關掉,90%以上的程式設計師都會失業,而剩下10%的程式設計師才是真正的高手。
不管你信不信,反正我是信了,因為我就是“搜尋”程式設計之中的一員,中國的程式設計師又有多少是懂得底層的程式設計核心的呢?
比如GTA系列,在最早的版本中只是一個開汽車的遊戲,意外出現了一個bug,遊戲中的警察突然開始攻擊玩家。工程師並沒有選擇修復這個bug,而是加強了它,創造了GTA系列的輝煌。從遊戲Minecraft來看,mojang官方對待bug的態度是:“這不是bug,是特性!”