導航:首頁 > 程序命令 > 非程序員找不到bug怎麼辦

非程序員找不到bug怎麼辦

發布時間:2022-04-23 21:29:57

1. 沒有bug的程序猿才是好程序猿

沒有BUG是不可能的,關鍵是注意良好的習慣減少BUG

2. 我是it程序員,剛進公司讓我調試bug但是總是調不好很是郁悶,我該怎麼辦是不是有很多人都有這樣的困惑

一般代碼不是很多,可以一步一步跟蹤,這樣在找Bug的過程也學習到人家撰寫的編碼的知識;如果很長又沒耐心去看,你就根據報異常的信息去瞭解,哪裏有錯了,打個斷點,F5調到那個斷點,如果能跑到那個斷點,就說明前面沒問題,如果沒跑到那個斷點,就說明前面有異常,要在重新調整。其實就是要會拆分找問題。
做IT,沒熬得住寂寞,謹慎仔細,品質如何保證呢。

3. 面試中被問到你遇到的java編程中的bug你如何解決的

首先,要認識 bug。
如果一個程序做了它不應該做的事,或者沒有做它應該做的事,那就是 bug。bug 很難避免,尤其在規模化的編程過程中。
我們知道從面向過程的角度來說,一個程序是由數據結構和演算法構成的,從面向對象的角度來說,程序可以是由類和對象組成的。因此 bug 我這里分成兩類:

在一個 Java 程序中,類和對象的關系可能會造成 bug。這是設計時的問題,例如多實例的同步問題、線程沖突和死鎖問題,這是常見的兩個潛在的 bug。要盡量避免這類 bug,只能在設計時下功夫。思路一定要清晰,一定要清楚每個類要做些什麼,什麼時候該做些什麼。這類 bug 比較容易發現,但是不易修補,因為牽扯到程序的不同部分,有時候相當麻煩,因此最好一開始就不要讓它出現。

然後一些細節上的 bug,屬於邏輯漏洞,可能是演算法上的漏洞。Java 其實這方面要比 C/C++ 安全,因為後者的某些漏洞是致命的,例如內存泄露、指針沖突、野指針等一系列問題,可能直接導致程序崩潰,但是 Java 絕對不會出現指針問題,內存相對安全。但是 Java 也可能導致內存不斷消耗,最終崩潰的情況也是有的。這個問題我也碰到過幾次了,如何解決?需要你對你大量使用的類非常熟悉,最好事先仔細看看文檔,有的類需要你最後 dispose 的,有的類 add 過後需要 remove 的,有的類的某些方法會間接地創造一些對象。這種 bug 不大容易發現,尤其是我們有時候對 JVM 的絕對信任而忽略了這些細節,甚至造成了不好的習慣。要麼不礙事,要麼很嚴重,一但出現問題可能會發現同樣的問題幾乎出現在所有的地方。所以避免這類 bug 只有謹慎,並且要養長良好的習慣。
順便說一句,Java 內存溢出後程序就直接退出,可能會導致數據丟失之類的,這個責任擔當不起的。
然後邏輯漏洞還沒講完,還有一些和內存無關,但是也是邏輯上的疏忽造成的,例如數組越界、空棧、格式不兼容等等。這些相當難發現,有時候是正常的,有時候就報錯了。這個可以說是最普遍的漏洞,也是最難發現的漏洞。這類漏洞要看程序員的水平,經驗豐富、思維清晰、反應敏捷、習慣良好的程序員會好一點,但是不是所有的程序員都是這樣的,再說人無完人,再怎麼水平高也難免犯點小錯嘛。這種漏洞基本都是在後期測試(傳說中的內測)和已發布的測試版中逐漸被發現。為了盡量早發現,內部的測試要做的好,不過首先負責各個部分的程序員之間要定下默契,程序要符合規范,類和方法盡量簡單化,不要一個方法出現 4 個以上的參數,因為那樣會巨大的增加測試的麻煩。要寫好注釋,變數名寫完整,等等規范就不一一列舉了。然後對測試人員的要求也是比較高的,測試人員必須熟練掌握測試技巧,有的團隊這些小 bug 的修復也是測試人員做的,那測試人員也要良好掌握調試技巧,團隊內人員要保持良好的溝通。

4. 電腦不知怎麼了,無法讀取U盤,錯誤信息是「該內存不能為read",怎麼弄啊

"該內存不能為read/應用程序錯誤的原因
1.病毒木馬造成的,在當今互聯網時代,病毒坐著為了獲得更多的牟利,常用病毒綁架應用程序和系統文件,然後某些安全殺毒軟體把被病毒木馬感染的應用程序和系統文件當病毒殺了導致出現應用程序錯誤。
2.應用程序組件丟失,應用程序完整的運行需要一些系統文件或者某些ll文件支持的,如果應用程序組件不完整也會導致應用程序出錯。
應用程序自身的bug引起的應用程序發生異常,人沒有完人,程序也一樣的,程序員只能做到盡量讓bug出現少點,出現一個就解決一個bug。
3.應用軟體與操作系統或其他應用軟體發生不兼容造成應用程序發生異常。
4.操作系統自身的問題,操作系統本身有bug ,也會導致出現崩潰 應用程序錯誤 該內存不能為read。
5.電腦硬體兼容性也會引起的,還有散熱不好,超頻等也會出現應用程序錯誤的。

該內存不能為read/應用程序錯誤解決辦法
先排除是不是病毒木馬引起的,請使用金山衛士進行木馬查殺,
⑴、進入主界面進入【查殺木馬】
⑵、然後點擊【快速掃描】即可
2.用金山衛士進行漏洞修復,解決系統本身造成的應用程序發生異常。
⑴、進入主界面進入【漏洞修復】
⑵、然後點擊【立即修復】即可
3.如果是單一某個應用程序引起的應用程序錯誤,那就嘗試重新卸載該軟體進行重新安裝。如果還是無法解決,就關閉其他軟體看是否能解決。
4.以上方法還是無法解決,那就肯能是硬體問題引起的,那就分別檢查內存條,主板,散熱器等等。這個建議找專業硬體維修商解決,不推薦大家自己手動解決。"
按照我的方法操作解決問題,不行再問我。

5. 測試中遇到不可重現的Bug怎麼辦 詳細�0�3

! 1. 記得有這么個缺陷,以後再遇到的時候可能就會了解發生的原因。 2. 盡力去查找出錯的原因,比如有什麼特別的操作,或者一些操作環境等。 3. 程序員對程序比測試人員熟悉的多,也許你提交了,即使無法重現,程序員也會了解問題所在。 4. 無法重現的問題再次出現後,可以直接叫程序員來看看問題。 5. 對於測試人員來說,沒有操作錯誤這條.既然遇到,就是問題。即使真的操作錯了,也要推到程序員那裡,既然測試人員犯錯誤,用戶也可能會犯同樣的錯誤。錯誤發生的時候, Tester 最大。 二、程序不是測試人員寫的,出問題也不是測試人員的原因。 至於無法重現,可能的原因很多,因為測試人員看到的只是程序的外部,無法深入程序內部,所以把責任推給測試人員是不對的。 測試人員的任務只是盡力重現問題,而不是必須重現!! 三、下次再遇到的時候,拉他們來看就可以了。 因為問題如果無論如何無法重現,程序員確實也沒有什麼好的解決方法。 而且此類問題即使程序員說修改了,測試員也沒有好的方法去驗證是不是。 四、你可以告訴程序員,測試過程是沒有錯誤的。 測試人員只是檢查程序中可能存在的問題,雖然測試人員使用一定的手段方法努力去覆蓋所有的情況,但這些都是理論的推測。在實際中,可能因為人員、環境、配置等種種原因出現各種各樣的問題,在測試人員這里發現問題是公司內部的事情,程序發到外面可就是公司的形象問題了。 需要讓程序員理解,測試人員是幫助他們的,不是害他們的。 客戶那裡發現問題比測試員發現問題結果要嚴重的多。 五、測試部門是獨立於開發部門的呀,真的打交道,也是經理對經理。 在我們這里,工作上面的事情,和程序員相互只能商議解決,並沒有誰高誰低。 問題無法重現,也要提出,程序員那裡可以回復無法再現。問題放在那裡,等到再次出現的時候,就立刻叫程序員過來查看。 實在沒有再次出現,最後可以寫到報告中,說出現了什麼現象,但無法再現(比較嚴重的問題才如此處理,小問題經理之間商量商量可能就算了)。 至於測試人員必須重現bug,你殺了我好了,我每次測試項目都有無法重現的問題,很多我能找到大概的原因,有些根本無法重現(僅僅出現一次)。 這種事情是無法避免的,並不能說測試人員無法重現問題,就是工作不到位(哼,程序有 bug,是否可以說程序員工作不到位的呀)。 六、測試部門要獨立,最好不受開發的制約。其實真正要重視,就應該有否決的權利。 我們公司就是項目承包,要拿最後的項目尾款,就要測試部簽字通過,這樣就避免了很多的問題。 其實只要自己盡到心就可以了,管別人怎麼說呢。 七、我們使用的狀態有: 程序員處理的狀態(由測試員提交的Action):等待處理的,再次出現的。 測試員處理的狀態(由程序員提交的 Action):已經修改的,暫不修改的,系統限制的,使用錯誤的,無法再現的。測試員可以修改記錄。 經理處理的狀態(由測試員提交Action):管理員處理的。經理還可以刪除記錄。 按照比較標準的說法,其實對於缺陷還應該有「等待確認的」、「已經確認的」和「重復提交的」的狀態,我們為了省事,統一使用了「等待處理的」。 最後結項的時候,缺陷的狀態對我們來說有兩種,「已經關閉的」(由測試員或經理確認)和「暫不修改的」(比如下一個版本處理等)。 呵呵,狀態多,有些煩瑣,特別是程序員很多的時候都不清楚應該回復什麼狀態,但我個人覺得對測試人員來說,這些狀態比較清晰明了,容易處理。 八、一個叫 doer_ljy(可戰)的網友回復了一些內容,我個人認為不很妥當,就回復了一些內容,綠顏色的是doer_ljy(可戰)的內容: 關於「無法重現」我看是有這么個問題存在。 首先如果你在測試之前有嚴格的測試計劃,就很難出現「無法重現」這種現象。「無法重現」的意思是不知道怎麼操作才能再次看見這個BUG。那麼這個BUG 多半是「計劃外」的。 不清楚你是否是測試人員。「計劃外」這個詞,對測試員來說應該不存在。測試用例的粒度一直是個在討論中的問題,測試人員很難有時間和精力寫出包含內容、數據、步驟等等全部操作一切的測試用例(說白了,只要一個長手識字的人,按照測試單做,就能發現所有的問題,呵呵,有軟體藍領的感覺了)。即使真的有,意義也不大,測試很多的時候,是發散性的思維,帶點創造性,想事先考慮完全,很難。所以更多時候,是在測試過程中逐步對用例等進行完善,所以說「計劃外」最好不要提。 說說我現在測試的一個項目,有一個業務,首先查詢出人員,有個「全選」按鈕,「全選」後,再用滑鼠一個一個取消選擇,這個時候進行業務辦理的時候,就會提示「沒有選擇人員」,至今為止一切都正常,但是這個時候再次點選人員進行業務處理,仍然會提示「沒有選擇人員」,這就是一個缺陷了。這個問題我想一般人都不會在測試用例中考慮到吧,因為發生的條件很苛刻:不用「全選」按鈕的時候不會發生;全選後點擊「取消全選」按鈕再辦理業務不會發生;全選全消後,先點擊人員再辦理業務也不會發生。 其次,成熟的測試人員即使無法再現 BUG,也能准確的描述出 BUG 發生之前幾個步驟的操作方法,測試用例情況。這些對開發人員分析BUG 原因很重要。所謂的BUG 發現環境。 呵呵,看來我不是成熟的測試人員。手工測試,比較熟練的時候,和打字可以說差不多,應該進行到哪裡,心中是有數的,但讓我完全從頭到尾的重復,不容易呀。寫測試缺陷報告單的時候,也只是說明操作步驟和發生的現象。其實無法重現的問題,既然說「無法重現」,也就是測試人員已經對這個現象進行了多次的驗證,一般從程序外部來說,測試人員的操作比程序員要熟練的。 最後,我不同意測試人員不假思索把發現的「問題」直接推給編碼人員的做法。畢竟是大家合作,目標是一致的。測試人員總是處在 BUG 發生的第一現場,應該幫助分析出現問題的原因。確認是不是自己的此時Miss. 測試人員提交任何一個問題,都會經過反復的驗證,如果容易重現,早就提出來了。絕對不是在推脫責任,還是那句話,對程序的結構,做的人當然比不做的人要清楚。另外,除非程序員詢問,否則我不會給程序員提出修改分析和建議!!測試人員的任務是發現問題,解決問題是程序員的事情。這么做可能會影響程序員思考問題的思路;而且測試人員做的多了,程序員不但不感激,可能反而會反感(好像程序員對測試人員有好印象的不多)。 再說兩個我這兩天遇到的問題。第一個就是我們的程序有一個鎖定數據的功能。鎖定後,在其它的業務,此數據將不能再使用。我當時發現這個功能無效,而且經過了幾次的驗證都不行,我當然就提出了。但是程序員那裡說此功能好使,我再驗證的時候,就沒有問題了,這個問題當時可以重現(但是我不可能遇到問題就拉程序員來看吧),後來卻沒有了,只能放在那裡,最後關閉掉。第二個就是在一個界面中,錄入有順序要求,必須先選擇一個ListBox (必填)再進行Edit 的錄入,但一次操作我沒有選擇 ListBox 就錄入的Edit,也正常保存了。後來無論我怎麼操作此問題都沒有出現(不夠成熟呀),我就放棄了,也沒有提交記錄(為了避免麻煩)。 測試人員的時間是有限的,進度給的都很少,一般連用例都沒有時間寫,還要去花很多時間驗證「無法重現」的問題?反正 10 分鍾如果試驗不出來,我就會放棄。嚴重的就提交,不影響的就當不知道。 下面是其它一些人的觀點: doublefalse(散諸懷抱):如果不能重現的 bug 確實比較麻煩,但最好在測試過程中注意干凈環境、正確的操作、相同的數據源,只要真的有問題,一定能否復現的。呵呵,多試試!!!我們以前一直有客戶反映入庫的數據經常有無關數據,但在家裡測試沒有問題,後來才發現是漢字編碼錯位,這樣同樣的字,錯位後就變成另外的東西了。 liuxiaoyuzhou(蟀哥):遇到過同樣的問題!主要是記住BUG 出現的環境!測試的時候這是關鍵! 在我們這里不能重現的BUG,是測試人員的工作不到位!我們這里程序員比測試人員說話有力度!郁悶呀! ericzhangali(另一個空間):首先一定要提交bug;其次不要企圖RD 一定去解這個bug;某些時候還得關閉這個bug。如果RD 認為是測試錯誤,(不明白什麼叫測試錯誤,是不是說他從測時要告訴你千萬不要怎麼怎麼做,否則後果自負啊,)那也沒什麼辦法,如果溝通解決不了,愛咋認為就咋認為吧。 darkcat_c(錯了重來):沒有 bug 是不可以重現的,bug 本事是建立在標準的規程上所出現的異常,如果你按test case 步驟做的話不太可能出現此類bug。作為測試人員一定要具備良好的記憶能力,一旦出現一些不知如何產生的bug,至少你要知道剛才你大致進行了那些操作。良好的分析能力,盡管你只是測試,但你應該全面的了解程序的架構,和一些重要的內部細節,不然你這個測試就是不合格的。定位bug 是開發的事情,而重現一個bug 是測試的本職工作,不要把所有的事情推給開發,不然你的確比開發要低一等。(編者按:這種話,不願意去辯駁,標准開發人員的看法,也許應該讓他們也來做做測試) liyan_1014(雁子):我覺得應該是這么處理: 1、一定提交bug,必須由負責bug 的tester 詳細描述測試操作步驟,bug 發生的症狀,並將 bug 發生的具體環境也描述清楚;這樣對於再次重現也有一定的參考性。 2、測試和開發之間是需要良好溝通的,如果得到的回復是操作錯誤,那麼請開發人員解釋,為什麼會允許存在操作錯誤,一般來說,對於錯誤控制,開發那邊應該能很好的把握。

6. 應用程序錯誤怎樣解決

運行某些程序的時候,有時會出現內存錯誤的提示,然後該程序就關閉。

「0x????????」指令引用的「0x????????」內存。該內存不能為「read」。

「0x????????」指令引用的「0x????????」內存,該內存不能為「written」。

不知你出現過類似這樣的故障嗎?(0x後面內容有可能不一樣。)

一般出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。

下面先說說硬體:

一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。

假如你是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,你就要檢查是不是內存出問題了或者和其它硬體不兼容。如果都沒有,那就從軟體方面排除故障了。

先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其一位置時,因為沒有足夠空間,就會發生溢出現象。舉個例子:一個桶子只能將一斤的水,當你放入兩斤的水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows 2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類似Windows 98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體設備之間的兼容性不好造成的。

下面我從幾個例子給大家分析:

例一:打開IE瀏覽器或者沒過幾分鍾就會出現"0x70dcf39f"指令引用的"0x00000000"內存。該內存不能為「read」。要終止程序,請單擊「確定」的信息框,單擊「確定」後,又出現「發生內部錯誤,您正在使用的其中一個窗口即將關閉」的信息框,關閉該提示信息後,IE瀏覽器也被關閉。 解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法是,Win2000自升級,也就是Win2000升級到Win2000,其實這種方法也就是把系統還原到系統初始的狀態下。比如你的IE升級到了6.0,自升級後,會被IE5.0代替。

例二:在windows xp下雙擊光碟裡面的「AutoRun.exe」文件,顯示「0x77f745cc」指令引用的「0x00000078」內存。該內存不能為「written」,要終止程序,請單擊「確定」,而在Windows 98里運行卻正常。 解決方法:這可能是系統的兼容性問題,winXP的系統,右鍵「AutoRun.exe」文件,屬性,兼容性,把「用兼容模式運行這個程序」項選擇上,並選擇「Windows 98/Me」。win2000如果打了SP的補丁後,只要開始,運行,輸入:regsvr32 c:\\winnt\\apppatch\\slayerui.dll。右鍵,屬性,也會出現兼容性的選項。

例三:RealOne Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現「0xffffffff」指令引用的「0xffffffff」內存。該內存不能為「read」 的提示。 解決方法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題,因此在關閉RealOne之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。

例四:我的豪傑超級解霸自從上網後就不能播放了,每次都提示「Ox060692f6」(每次變化)指令引用的「Oxff000011」內存不能為「read」,終止程序請按確定。 解決方法:試試重裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。

例五:雙擊一個游戲的快捷方式,「Ox77f5cdO」指令引用「Oxffffffff」內 存,該內存不能為「read」 ,並且提示Client.dat程序錯誤。 解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。

例六:一個朋友發信息過來,我的電腦便出現了錯誤信息:「0*772b548f」指令引用的「0*00303033」內存,該內存不能為「written」,然後QQ自動下線,而再打開QQ,發現了他發過來的十幾條的信息。 解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。

通過上面的幾個例子,可以看到,出現故障的原因有好多種,在這里把已經提到和有可能發生的原因列個表,方便查閱。

解決方法

1、內存條壞了更換內存條

2、雙內存不兼容使用同品牌的內存或只用一條內存

3、內存質量問題更換內存條

4、散熱問題加強機箱內部的散熱

5、內存和主板沒插好或和其它硬體不兼容等重插內存或換個插糟

6、硬碟有問題更換硬碟

7、驅動問題重裝驅動。如果是新系統,要先安裝主板驅動

8、軟體損壞重裝軟體

9、軟體有BUG打補丁或用最新的版本。

10、軟體和系統不兼容給軟體打上補丁或者試試系統的兼容模式

11、軟體和軟體之間有沖突如果最近安裝了什麼新軟體,卸載了試試

12、軟體要使用到其它相關的軟體有問題重裝相關軟體。比如播放某一格式的文件時出錯,可能是這個文件的解碼器有問題

13、病毒問題殺毒

14、殺毒軟體與系統或軟體沖突由於殺毒軟體是進入底層監控系統的,可能與一些軟體沖突,卸載了試試

15、系統本身有問題有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序,像SP的補丁,最好要打上。如果還不行重裝系統或更換其它版本的系統了。

使用Windows出現藍色屏幕是經常的事,而且每每因為不清楚錯誤的來源而頻繁重新安裝系統,勞神費時。下列收集了一些windows死機密碼,供大家參考。

數值 敘述

0 0x0000 作業完成。

1 0x0001 不正確的函數。

2 0x0002 系統找不到指定的檔案。

3 0x0003 系統找不到指定的路徑。

4 0x0004 系統無法開啟檔案。

5 0x0005 拒絕存取。

6 0x0006 無效的代碼。

7 0x0007 儲存體控制區塊已毀。

8 0x0008 儲存體空間不足,無法處理這個指令。

9 0x0009 儲存體控制區塊位址無效。

10 0x000a 環境不正確。

11 0x000b 嘗試載入一個格式錯誤的程式。

12 0x000c 存取碼錯誤。

13 0x000d 資料錯誤。

14 0x000e 儲存體空間不夠,無法完成這項作業。

15 0x000f 系統找不到指定的磁碟機。

16 0x0010 無法移除目錄。

17 0x0011 系統無法將檔案移到 其他的磁碟機。

18 0x0012 沒有任何檔案。

19 0x0013 儲存媒體為防寫狀態。

20 0x0014 系統找不到指定的裝置。

21 0x0015 裝置尚未就緒。

22 0x0016 裝置無法識別指令。

23 0x0017 資料錯誤 (cyclic rendancy check)

24 0x0018 程式發出一個長 度錯誤的指令。

25 0x0019 磁碟機在磁碟找不到 持定的磁區或磁軌。

26 0x001a 指定的磁碟或磁片無法存取。

27 0x001b 磁碟機找不到要求的磁區。

28 0x001c 印表機沒有紙。

29 0x001d 系統無法將資料寫入指定的磁碟機。

30 0x001e 系統無法讀取指定的裝置。

31 0x001f 連接到系統的某個裝置沒有作用。

32 0x0020 the process cannot access the file because it is being used by another process.

33 0x0021 檔案的一部份被鎖定, 現在無法存取。

34 0x0022 磁碟機的磁片不正確。 請將 %2 (volume serial number: %3) 插入磁碟機 %1。

36 0x0024 開啟的分享檔案數量太多。

38 0x0026 到達檔案結尾。

39 0x0027 磁碟已滿。

50 0x0032 不支援這種網路要求。

51 0x0033 遠端電腦無法使用。

52 0x0034 網路名稱重復。

53 0x0035 網路路徑找不到。

54 0x0036 網路忙碌中。

55 0x0037 the specified network resource or device is no longer available.

56 0x0038 the network bios command limit has been reached.

57 0x0039 網路配接卡發生問題。

58 0x003a 指定的伺服器無法執行要求的作業。

59 0x003b 網路發生意外錯誤。

60 0x003c 遠端配接卡不相容。

61 0x003d 印表機佇列已滿。

62 0x003e 伺服器的空間無法儲存等候列印的檔案。

63 0x003f 等候列印的檔案已經刪除。

64 0x0040 指定的網路名稱無法使用。

65 0x0041 拒絕存取網路。

66 0x0042 網路資源類型錯誤。

67 0x0043 網路名稱找不到。

68 0x0044 超過區域電腦網路配接卡的名稱限制。

69 0x0045 超過網路 bios 作業階段的限制。

70 0x0046 遠端伺服器已經暫停或者正在起始中。

71 0x0047 由於連線數目已達上限,此時無法再連線到這台遠端電腦。

72 0x0048 指定的印表機或磁碟裝置已經暫停作用。

80 0x0050 檔案已經存在。

82 0x0052 無法建立目錄或檔案。

83 0x0053 int 24 失敗

84 0x0054 處理這項要求的儲存體無法使用。

85 0x0055 近端裝置名稱已經在使用中。

86 0x0056 指定的網路密碼錯誤。

87 0x0057 參數錯誤。

88 0x0058 網路發生資料寫入錯誤。

89 0x0059 此時系統無法執行其他行程。

100 0x0064 無法建立其他的系統 semaphore。

101 0x0065 屬於其他行程專用的 semaphore 。

102 0x0066 semaphore 已經設定,而且無法關閉。

103 0x0067 無法指定 semaphore 。

104 0x0068 在岔斷時間無法要求專用的 semaphore 。

105 0x0069 此 semaphore 先前的擁有權已經結束。

106 0x006a 請將磁片插入 %1。

107 0x006b 因為代用的磁片尚未插入,所以程式已經停止。

108 0x006c 磁碟正在使用中或被鎖定。

109 0x006d pipe 已經中止。

110 0x006e 系統無法開啟指定的 裝置或檔案。

111 0x006f 檔名太長。

112 0x0070 磁碟空間不足。

113 0x0071 沒有可用的內部檔案識別字。

114 0x0072 目標內部檔案識別字不正確。

117 0x0075 由應用程式所執行的 ioctl 呼叫 不正確。

118 0x0076 寫入驗證參數值不正確。

119 0x0077 系統不支援所要求的指令。

120 0x0078 此項功能僅在 win32 模式有效。

121 0x0079 semaphore 超過逾時期間。

122 0x007a 傳到系統呼叫的資料區域 太小。

123 0x007b 檔名、目錄名稱或儲存體標簽語法錯誤。

124 0x007c 系統呼叫層次不正確。

125 0x007d 磁碟沒有設定標簽。

126 0x007e 找不到指定的模組。

127 0x007f 找不到指定的程序。

128 0x0080 沒有子行程可供等待。

129 0x0081 %1 這個應用程式無法在 win32 模式下執行。

130 0x0082 attempt to use a file handle to an open disk partition for an

operation other than raw disk i/o.

131 0x0083 嘗試將檔案指標移至檔案開頭之前。

132 0x0084 無法在指定的裝置或檔案,設定檔案指標。

133 0x0085 join 或 subst 指令 無法用於 內含事先結合過的磁碟機。

134 0x0086 嘗試在已經結合的磁碟機,使用 join 或 subst 指令。

135 0x0087 嘗試在已經替換的磁碟機,使 用 join 或 subst 指令。

136 0x0088 系統嘗試刪除 未連結過的磁碟機的連結關系。

137 0x0089 系統嘗試刪除 未替換過的磁碟機的替換關系。

138 0x008a 系統嘗試將磁碟機結合到已經結合過之磁碟機的目錄。

139 0x008b 系統嘗試將磁碟機替換成已經替換過之磁碟機的目錄。

140 0x008c 系統嘗試將磁碟機替換成已經替換過之磁碟機的目錄。

141 0x008d 系統嘗試將磁碟機 subst 成已結合的磁碟機 目錄。

142 0x008e 系統此刻無法執行 join 或 subst。

143 0x008f 系統無法將磁碟機結合或替換同一磁碟機下目錄。

144 0x0090 這個目錄不是根目錄的子目錄。

145 0x0091 目錄仍有資料。

146 0x0092 指定的路徑已經被替換過。

147 0x0093 資源不足,無法處理這項 指令。

148 0x0094 指定的路徑這時候無法使用。

149 0x0095 嘗試要結合或替換的磁碟機目錄,是已經替換過的的目標。

150 0x0096 config.sys 檔未指定系統追蹤資訊,或是追蹤功能被取消。

151 0x0097 指定的 semaphore事件 dosmuxsemwait 數目不正確。

152 0x0098 dosmuxsemwait 沒有執行;設定太多的 semaphore。

153 0x0099 dosmuxsemwait 清單不正確。

154 0x009a 您所輸入的儲存媒體標 元長度限制。

155 0x009b 無法建立其他的執行緒。

156 0x009c 接收行程拒絕接受信號。

157 0x009d 區段已經被舍棄,無法被鎖定。

158 0x009e 區段已經解除鎖定。

159 0x009f 執行緒識別碼的位址不正確。

160 0x00a0 傳到 dosexecpgm 的引數字串不正確。

161 0x00a1 指定的路徑不正確。

162 0x00a2 信號等候處理。

164 0x00a4 系統無法建立執行緒。

167 0x00a7 無法鎖定檔案的部份范圍。

170 0x00aa 所要求的資源正在使用中。

173 0x00ad 取消范圍的鎖定要求不明顯。

174 0x00ae 檔案系統不支援自動變更鎖定類型。

180 0x00b4 系統發現不正確的區段號碼。

182 0x00b6 作業系統無法執行 %1。

183 0x00b7 檔案已存在,無法建立同一檔案。

186 0x00ba 傳送的旗號錯誤。

187 0x00bb 指定的系統旗號找不到。

188 0x00bc 作業系統無法執行 %1。

189 0x00bd 作業系統無法執行 %1。

190 0x00be 作業系統無法執行 %1。

191 0x00bf 無法在 win32 模式下執行 %1。

192 0x00c0 作業系統無法執行 %1。

193 0x00c1 %1 不是正確的 win32 應用程式。

194 0x00c2 作業系統無法執行 %1。

195 0x00c3 作業系統無法執行 %1。

196 0x00c4 作業系統無法執行 這個應用程式。

197 0x00c5 作業系統目前無法執行 這個應用程式。

198 0x00c6 作業系統無法執行 %1。

199 0x00c7 作業系統無法執行 這個應用程式。

200 0x00c8 程式碼的區段不可以大於或等於 64kb。

201 0x00c9 作業系統無法執行 %1。

202 0x00ca 作業系統無法執行 %1。

203 0x00cb 系統找不到輸入的環境選項。 \r

205 0x00cd 在指令子目錄下,沒有任何行程有信號副處理程式。

206 0x00ce 檔案名稱或副檔名太長。

207 0x00cf ring 2 堆疊使用中。
回答者: 我思故我問 - 高級經理 六級 12-9 01:24
修改答復: 我思故我問,您要修改的答復如下: 積分規則 關閉

該內存不能read written常見原因
使用Windows操作系統的人有時會遇到這樣的錯誤信息:「0X????????指令引用的0x00000000內存,該內存不能written」,然後應用程序被關閉。如果去請教一些「高手」,得到的回答往往是「Windows就是這樣不穩定」之類的義憤和不屑。其實,這個錯誤並不一定是Windows不穩定造成的。本文就來簡單分析這種錯誤的常見原因。

一、應用程序沒有檢查內存分配失敗
程序需要一塊內存用以保存數據時,就需要調用操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「指針」。
內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的指針,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。
若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用指針,繼續在之後的運行中使用這塊內存。真正的0地址內存區保存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即死機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。
內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統文件之後。
二、應用程序由於自身BUG引用了不正常的內存指針
在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試圖讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的指針已經失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止運行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊! 像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無效指針不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其他隨機數字。
如果系統經常有所提到的錯誤提示,下面的建議可能會有幫助:
1.查看系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統文件、修正系統參數。有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。
3.試用新版本的應用程序。

7. 程序員遇到解決不了的bug怎麼辦

但大部分程序員都有一個問題就是不太願意測試自己的代碼。他們草草的調式完成以後就認為工作結束,測試那是測試人員的工作。
1. 影響了程序員自己的聲譽
2. 影響了產品的質量
3. 影響了客戶的信任度
4. 這個時候再 DEBUG 難度增大了許多。
大的不說,就說多自己聲譽的影響吧。如果你的程序總會有這樣那樣的 BUG ,你得到收益會減少,即使你寫了很多代碼。
程序員必須克服一些自身的致命缺點才能夠從根本上解決這個問題。那麼這個問題是什麼?前面我們已經提到,程序員對自己的代碼都非常寬容,認為那是正確的沒有問題。實際上這種想法比較正常,程序是通過程序員思考和設計之後才寫出來,程序員不會將自己認為不正確的東西寫到代碼里,而到這個時候都一直假設程序是正確的;但人非聖賢,怎麼可能不犯錯誤來。實際上程序員在對待其他程序員時候的態度就很好,帶著一種挑剔和學習的態度;但一旦對待自己的代碼就很難這么做;這就是最致命的。程序員也必須對自己的代碼帶著挑剔和學習的態度;這個基礎是假設自己的代碼是錯誤的,然後需要做的是怎麼樣證明自己的代碼是正確的。程序員自身可以在程序生成的每個階段做這些工作:仔細的設計(這個時候畫點時間是值得的,必須保證我們對自己的程序有清晰的輪廓後才能開始動手寫)、編寫代碼時、單元測試(單元測試的重要性就不在贅婿了)、功能測試。
仔細的設計:這個的仔細是說在程序員編寫代碼之前,其必須對代碼的整個結構以及邏輯結構有明確的清晰的了解,只有這個時候才可以去寫代碼。這里沒有談到文檔,但我說到了一定要清晰的思路,但清晰的思路不是每個人都可以在腦袋中直接形成的,很多人都是普通人,沒有辦法在腦袋瓜中把所有問題都想清楚,那麼就記下來,特別對於復雜的邏輯。
編寫代碼:對於沒有把握的代碼,例如:新設計的演算法,最好保證其正確性。可以單獨將這部分測試,這可以讓代碼模塊化的同時又保證了代碼的正確性。一句話:少量的代碼保證質量還是比較簡單的。
單元測試:單元測試的重要性不在贅敘了,現在也有許多工具可以幫助程序員並減少工作量。
功能測試:程序員保證自己代碼質量的最後一關;為了做這樣的工作我們可能必須寫一些代碼來測試,甚至是測試工作。使用大量的 CASE 來測試,以及錯誤的 CASE 。這里和測試人員的測試不同之處在於:仍然讓程序員的注意力放在其自己的代碼范圍內,減小了排錯的難度。
如果你通過了以上的步驟都找不出你程序中有任何問題的話,那麼我想你的程序應該足夠健壯了。其實還有一點必須說明的就是:代碼 REVIEW 。
前面說道了程序員對待別人代碼的態度是挑剔和學習的態度,所以讓其他程序員來 REVIEW 你的代碼也是檢查程序有沒有邏輯錯誤的很好的辦法。團隊中應該交叉 REVIEW 代碼,這是實踐的經驗。
作為一個好的程序員必須有以上的習慣,以及對待自己代碼象孩子一樣,我們要愛惜我們的代碼,同時也要讓代碼走正確的路。

8. 如果bug關閉了就看不到了嗎

bug沒有關閉一說只有修復一說。
程序錯誤,即英文的Bug,也稱為缺陷、臭蟲,是指在軟體運行中因為程序本身有錯誤而造成的功能不正常、死機、數據丟失、非正常中斷等現象。在程序員對其進行修復後bug將不復存在。

9. 程序員是怎麼確定bug

斷點是調試器的功能之一,可以讓程序在調試運行時中斷在需要的地方(如vc中按F9),斷點名是break-point,BUG的定位主要應該是靠程序員自己的判斷,不應該把什麼都交由調試器來完成。另外,bug的確定必要時還需要藉助一些檢測工具(如 PC-Lint、Insure++等)。

10. 評「程序員怎麼樣才能保證自己的程序沒有BUG」

復核代碼的目的有:
* 檢查代碼是否規范,如命名規范,注釋
* 保證一段代碼至少有兩人共同熟悉,可以由任一人來更改。
* 審察未文檔化的細節設計,即由代碼直接表達的設計,由代碼人口述設計並對照代碼
我認為程序員永遠都不會有100%的自信。
即使程序已經發布,被用戶接受很長時間,只有好評沒有抱怨,依舊不能確認有沒有錯誤。
只能假定錯誤是永恆的,它們一直在那裡,只是不到條件爆發。
一個程序員能做的就是,排除所有膚淺的錯誤,加大隱藏錯誤出現的幾率並找到它們,
採用一些容錯性代碼減小可能的錯誤,減少程序發布後爆發的機率。
測試的目的是為了發現錯誤,
沒有100%覆蓋的測試。就是說,總是有一些狀態是測試不到的。
代碼人員認為不可避免地存在錯誤,需要測試,測試人員認為測試覆蓋度不可能100%,還是要代碼小心。
這是一個頭痛的問題,結果是沒有完美的程序。
單元測試是白箱測試,可以根據代碼實現將注意力放到最關鍵的部位。
但仍然不是100%覆蓋的。
單元測試一般針對的是邊界數據,不要求覆蓋度,而更要求有效性。
其目的更主要的是保證代碼更改不會破壞原有的正確性,是提供保障而不是查找故障。
保證沒有錯誤的唯一方法是不寫代碼,減少錯誤的最好方法是少寫代碼。
簡單的設計和實現是減少錯誤的最佳方法。簡單的代碼錯誤必定少。
畫蛇添足式的功能則是最大的錯誤發源地。

閱讀全文

與非程序員找不到bug怎麼辦相關的資料

熱點內容
oppo手機谷歌伺服器無法核實什麼 瀏覽:318
軟體怎麼加密華為 瀏覽:220
掃地機怎麼安裝app 瀏覽:317
考研結合特徵值計演算法 瀏覽:514
操作系統演算法綜合題 瀏覽:150
華為程序員待遇 瀏覽:545
程序員帶娃的圖片 瀏覽:77
迷你雲伺服器怎麼下載 瀏覽:813
福州溯源碼即食燕窩 瀏覽:232
當樂伺服器怎麼樣 瀏覽:713
nc編程軟體下載 瀏覽:382
如何限制手機app的使用 瀏覽:307
安卓華為手機怎麼恢復桌面圖標 瀏覽:956
我的世界電腦版伺服器地址在哪找 瀏覽:533
違抗了命令 瀏覽:256
安卓如何實現拖拽放置 瀏覽:91
凈資產收益率選股指標源碼 瀏覽:599
血壓力感測器計算公式單片機 瀏覽:466
全網介面vip影視解析源碼 瀏覽:916
如何破解伺服器遠程密碼錯誤 瀏覽:377