通過前面的介紹,大家已經(jīng)會(huì)了數(shù)據(jù)斷點(diǎn)、條件斷點(diǎn),今天我們?cè)俳o大家加一個(gè)內(nèi)存斷點(diǎn),更有意思哦。
顧名思義,內(nèi)存斷點(diǎn)就是在一個(gè)地址處下斷點(diǎn),這個(gè)地址只要有讀寫就斷住,就這么簡(jiǎn)單。那么下來我們給大家演示一下,先看一個(gè)程序:
怎么樣?簡(jiǎn)單吧,交換兩個(gè)數(shù)字的程序
這個(gè)時(shí)候比方我想看a變量地址出的改變情況,就可以用內(nèi)存斷點(diǎn)來下斷點(diǎn),我們先查看&a的地址,比如筆者這里找到是0x0019ff3c,那么現(xiàn)在就可以下斷點(diǎn)了,方法是:
點(diǎn)擊Edit – 斷點(diǎn) 在編輯框里輸入想要下的斷點(diǎn)處地址0x0019ff3c
然后排列結(jié)構(gòu)這里填了,因?yàn)閕nt占四個(gè)字節(jié)。
然后確定關(guān)閉,之后就可以運(yùn)行程序了!
只要0x0019ff3c被讀寫都會(huì)引發(fā)斷點(diǎn)!如圖:
我們還可以跟蹤這片內(nèi)存的變化情況,如下圖可以看到是在剛進(jìn)入這main函數(shù)時(shí)變量a還未初始化時(shí)候的情況,還是CC…呢,下面隨著mov的一句才把3放到a里完成初始化。
繼續(xù)往下走,0x0019ff3c處又被更改,被寫入b的值19(對(duì)應(yīng)十進(jìn)制25)
怎么樣,同學(xué)們,學(xué)會(huì)內(nèi)存斷點(diǎn)了嗎?
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程