VS 调试断点命中了,程序无法再断点处中断
代碼無法命中處理
1.首先確認一下,程序的DLL與源碼是否一致,可以編譯之后再進行
2.確認是否有公共的文件存儲常用的DLL,導致程序沒有走最新編譯的DLL
3.VS程序調(diào)試時會用到 .pdb文件,是否DLL是最新的但是 .pdb文件不是最新的,刪掉 .pdb文件
上述問題都確認沒有問題,但是斷點可以命中,但是就是無法在斷點處中斷
確認斷點是否真的命中了,我調(diào)試程序時,使用的是附加進程的調(diào)試方式進行調(diào)試的,當我已經(jīng)附加了進程調(diào)試后發(fā)現(xiàn)再打斷點,很容易就命中斷點了,但是程序就是不在斷點處中斷
以前遇到過一次這種問題,請教技術(shù)經(jīng)理都沒看出什么問題來,最終我無意間再源碼處多加了幾行空行再編譯突然發(fā)現(xiàn)程序能在斷點處中斷了,這個我猜測是否是當程序沒有進行更改代碼,
直接沖i重新編譯是否有無法更新DLL,但是這一次我又遇到了這種斷點命中了,但是就是無法在斷點處中斷。
不停的嘗試,突然發(fā)現(xiàn)如果斷點是在附加進程之前進行打上了,在附加了進程之后斷點,變成空心帶黃色的符號,便是其實斷點沒有命中。但是取消未命中斷點,再次在此處打斷點(已經(jīng)附加上進程)的
情況下,發(fā)現(xiàn)還是可以命中斷點。
實在沒有辦法,上網(wǎng)搜索各種答案主要有如下幾種答案:
1.取消源碼匹配(這種方法,不推薦。這個是給新手用的,就算可以解決斷點無法命中的問題,也沒有意義,因為程序?qū)嶋H執(zhí)行的代碼和我們看到的不一樣,我們也不會知道問題出現(xiàn)在哪。)
附圖:
?
?
2.程序進行不在Debug模式下,將程序設置為Debug
附圖:
?
?
?
?
按照第二種方式設置后,發(fā)現(xiàn)還是不行,無法在斷點處中斷
?
繼續(xù)網(wǎng)上搜索答案
?
3.程序設置了代碼優(yōu)化,設置了代碼優(yōu)化將導致調(diào)試符號無法加載
附圖:
?
?
?進行了這一步后還是無法調(diào)試,繼續(xù)接著改,在我附加進程后,VS下面會有一個輸出窗口,上面有一些信息,大概是pdb無法加載,等等
這種情況按下圖處理
附圖:
?
這樣處理后,最后再次附加進程調(diào)試,各位你們猜,這次成功沒呢?不過我只是附加了進程,但是沒有執(zhí)行程序跳到斷點處。我發(fā)現(xiàn)在附加進程前打的斷點還是無法命中,我取消了上面的啟用源服務設置,再次附加進程,發(fā)現(xiàn)可以了,最終能夠運行了,但是最后我不能再程序處中斷到底是什么原因。
轉(zhuǎn)載于:https://www.cnblogs.com/liuniublogs/p/9627864.html
總結(jié)
以上是生活随笔為你收集整理的VS 调试断点命中了,程序无法再断点处中断的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 整数的运算
- 下一篇: 英语中单词属性的简称