# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-01-04 17:39 by
這個不是VS的BUG吧,可能不滿足 要求源文件與原始版本完成匹配,或者 模塊根本就沒加載,當(dāng)然沒法調(diào)試。
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-01-04 19:23 by
博主,這個根本不是Visual Studio的BUG.
微軟的這個IDE是非常強(qiáng)大的,主要是因為你沒有了解它的編譯原理.
Visual Studio并不是使用g++來編譯的,它有自己的編譯器,其中有很多不同的編譯模式.比如默認(rèn)的有三種,比較常用的就是Debug,Release模式.
當(dāng)你使用Debug,即調(diào)試模式時,不會出現(xiàn)任何斷點(diǎn)失效的問題.想必你使用的編譯模式是Release.這個模式使用了非常多的編譯優(yōu)化.在寫程序的時候你可能看不出來,其實你在程序運(yùn)行時隨便在哪里設(shè)一個斷點(diǎn)停下,然后它會自動給你匯編代碼,仔細(xì)看看,你會發(fā)現(xiàn)它為你做了非常多的常數(shù)優(yōu)化.
比如除法,a/=7,你看看它的匯編代碼,是進(jìn)行了一系列的乘加操作,最終得出了正確答案,這個比一個除法的匯編指令快多了.不過當(dāng)你添了些代碼時,想調(diào)試它,它因為一些優(yōu)化原因,就忽略了這些新加入的內(nèi)容.
總的來說,當(dāng)你調(diào)試程序時,一定要記得使用DEBUG模式,它不會做什么優(yōu)化,調(diào)試沒有任何問題.當(dāng)要輸出最終產(chǎn)品,即可執(zhí)行文件或庫時,開啟Release模式,并且讓整個解決方案和程序全部重新生成,這樣才會正確執(zhí)行,生成的東西才是最優(yōu)化的,并且程序體積也比DEBUG生成的小很多.
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-01-05 08:59 by
這種情況不解決辦法有 很多。你這個方法我沒用過。最簡單的方法就是ctrl+a, ctrl+f重新格式化這個‘不可調(diào)試’的CPP文件,然后編譯該CPP文件,一般就可以解決。當(dāng)然,有時候也無法解決。
@CK
這里說的就是DEBUG模式。
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-01-05 09:49 by
PDB文件失效了,Clean->Rebuild即可
CK,你說話就像放屁,
“當(dāng)你使用Debug,即調(diào)試模式時,不會出現(xiàn)任何斷點(diǎn)失效的問題”,你試過嗎?,我就在debug模式下,確實是運(yùn)行不到斷點(diǎn)!!!
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2009-03-31 08:31 by
在Debug模式下,我也出現(xiàn)過樓主說的現(xiàn)象,不過個人覺得有以下問題。
1、無效斷點(diǎn)所在的項目和啟動項目的設(shè)置:項目->屬性->配置屬性->C/C++->常規(guī)->調(diào)試信息格式,這里不能為『禁用』;
回:默認(rèn)的Debug模式,這個就是非禁用狀態(tài)。
2、項目->屬性->配置屬性->鏈接器->調(diào)試->生成調(diào)試信息,這里設(shè)為『是』;
回:Debug模式的默認(rèn)值。(手抽和VS版本混亂者排除)
3、C/C++->優(yōu)化->優(yōu)化選擇『禁用』;
回:Debug模式的默認(rèn)值。(手抽和VS版本混亂者排除)
4、刪除解決方案下的.ncb文件;
回:這個方法比較管用。
5、工具->選項->調(diào)試->『要求源文件與原始版本完成匹配』去掉勾;
回:這個不建議使用,不然編譯出來的版本可能不是你最新的代碼編譯出來的。
而且你也很難找問題,強(qiáng)烈BS這個方法。
6、最后在上述設(shè)置的情況下,重新編譯整個解決方案;
回:這個方法比較管用。
7、回過頭來,發(fā)現(xiàn)原來是一段不會被執(zhí)行到的代碼……
回:這個方法最管用^_^。
純屬個人意見,呵呵。
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2009-04-30 12:01 by
這個根本不是Visual Studio的BUG。
說上面這句話的人,應(yīng)當(dāng)是沒遇到過這個問題,或者根本就不知道調(diào)試是什么。
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-04-30 22:26 by
哦?那請問叫做ZZ的,要是可以,請你拿出一個實例來吧,空口的話不要直接就說“根本就不知道調(diào)試是什么”,或許您更不知道調(diào)試是什么吧
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-05-19 17:17 by
確實在vs2005下碰到過debug模式下斷點(diǎn)無法命中的問題,后來我發(fā)現(xiàn)是因為pdb符號文件不小心被挪到另外的位置了。可以用二進(jìn)制編輯工具打開生成的可執(zhí)行文件,里面有pdb文件的路徑信息,pdb文件實際存放的路徑要和里面的信息一致。
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-08-18 01:28 by
樓主這個幫助其實是寫給新手的,什么是調(diào)試怎么調(diào)?也許對于有人手把手幫你你可能掌握得比較快,但事實上VS2005默認(rèn)的調(diào)試方式在調(diào)試c++程序時根本不會命中斷點(diǎn),不管你們用什么辦法,改為debug也好按樓主方法逐條設(shè)置也好,總而言之就是把調(diào)試打開了
但我不明白CK你是用的是什么方法,具體怎么操作的。我的VS每次新建工程調(diào)試C++程序都要按照樓主的方法重新設(shè)置才行,而我在工程,選項中即使選擇了debug依然不能調(diào)試,只有全改才行
關(guān)于jason說的默認(rèn)為什么什么不知你是怎么看到弄得
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-08-18 01:44 by
在附上最新的解決方案
希望能夠幫助廣大的編程入門者
如果你按照樓主的方法修改正確說明一個問題
你建錯工程了!
建工程時如果你想做一個簡單的控制臺程序,要選擇控制臺程序
而不是選擇空項目!
當(dāng)選擇控制臺程序后進(jìn)入的向?qū)Ю锩孢x擇空項目。
這個問題即使是經(jīng)驗多年的程序員一般也無法幫你解決。樓主的方法是通過能調(diào)試的工程和不能調(diào)試的工程對比出來的,比較笨也比較難記,取舍自己決定
裝比的自重
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2009-09-27 21:46 by
那個CK是不是認(rèn)為VISUAL STUDIO沒有BUG?
我就在DEBUG下遇到了這個問題,也按照樓主的方法解決了!
你還別太自信的好。
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2009-09-28 08:18 by
我的意思不是Visual Studio沒有BUG
再完美的程序也有可能有BUG
我的意思是按樓主以及底下的一些回復(fù)
你們自己看看,應(yīng)該是自己的工程屬性和設(shè)置等問題,而不是說這個是VS的BUG
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2009-09-28 10:31 by
不過Vs的BUG確實存在的.....有些問題很神奇也很無奈啊...也許是本身的水平問題吧...
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2009-11-11 18:16 by
每次在vss上下載后打斷點(diǎn)無效,必須改動下OnInitDialog 函數(shù)的內(nèi)容,再打個斷點(diǎn)才能進(jìn)入其它斷點(diǎn)
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2010-03-10 15:57 by
VS確實很多bugs,樓主的方法確實比較實用
中國的程序員別說解決問題,這里就開始罵人了,一群垃圾
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2010-04-10 16:01 by
把你運(yùn)行不到斷點(diǎn)的代碼貼上來吧,我們看看是誰在放P
你連代碼都不敢貼還說別人放P,自己SB啊
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2010-04-10 16:05 by
而且已經(jīng)說了,這些是你工程設(shè)置的問題,而不是所謂的Visual Studio的BUG,我上面表達(dá)的意思就是這根本不是BUG,而是設(shè)置的問題
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2010-04-12 15:57 by
CK寫的程序比較少,這種問題確實存在,尤其在跨平臺的庫引用上。。。樓主的方法能解決部分問題,有的時候也試試ctrl+a 然后ALT F8吧,我想這是Kevin Lynx 的意思
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2010-06-16 17:58 by
CK說的是對的,這不屬于vs的bug.肯定是工程設(shè)置的問題,或者是pdb調(diào)試信息數(shù)據(jù)庫位置或文件錯誤導(dǎo)致的,而pdb文件出現(xiàn)這種問題很可能是用戶自己非正常關(guān)閉vs或計算機(jī)導(dǎo)致的.
但vs確實是有bug的,我所知道的,從vs6到vs2010都一直存在多線程斷點(diǎn)調(diào)試bug導(dǎo)致系統(tǒng)死鎖的bug,而這現(xiàn)象是隨機(jī)的,有時候很頻繁,有時候沒有.
# re: VS2005斷點(diǎn)失效的問題 回復(fù) 更多評論
2010-06-22 14:37 by
樓主有沒有寫過程序,這個是從哪兒轉(zhuǎn)來的吧!
# re: VS2005斷點(diǎn)失效的問題[未登錄] 回復(fù) 更多評論
2011-06-12 20:08 by
這個問題我遇過,我的兩個項目dll mfc 因跨項目調(diào)試,原因是dll 版本不與原碼不一致