您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!
第一個(gè)問(wèn)題:調(diào)試時(shí)候想實(shí)時(shí)查看某一變量變化?
view 菜單下的 watch windows,全局變量才能查看
比如要查看u8 adcx的值變化,如下:
全速運(yùn)行后,如下:
無(wú)法查看!什么問(wèn)題?
該變量非全局變量!
解決辦法:
必須是當(dāng)前斷點(diǎn)處所在的函數(shù)里面有這個(gè)參數(shù)才行,或者是全局變量.
將變量adcx改為全局變量:
調(diào)試狀態(tài)下,鼠標(biāo)選中變量后點(diǎn)右鍵,彈出的菜單有增加到變量窗口一欄,添加到watch #1 watch #2都可以。
函數(shù)里面的局部變量用j-link硬件調(diào)試,看不到那些值嗎?
當(dāng)然可以看
有個(gè)Call Stack的窗口,就可以看當(dāng)前函數(shù)里面的所有變量值.
在call stack的窗口上看不到值 顯示<not in scope>,是什么意思?
意思就是不再范圍。。。
無(wú)法顯示。
加violate關(guān)鍵字。
請(qǐng)問(wèn)怎么加啊 violate int a=0;下面都是錯(cuò)誤了
看局部變量的值,你在該局部變量所在的函數(shù)里,打個(gè)斷點(diǎn),程序運(yùn)行到該位置了,才能顯示局部變量的值。
第二個(gè)問(wèn)題:Watch1窗口中變量adcx值不能實(shí)時(shí)顯示?
解決方法:
調(diào)試狀態(tài)下,勾上View->Periodic Window Update
要的不是這個(gè)顯示,是要提高顯示的刷新頻率
第三個(gè)問(wèn)題:調(diào)試時(shí)候如何查看局部變量?
watch框內(nèi)的變量只有在當(dāng)前變量作用域的才可以添加,例如全局變量。局部變量即使添加后,在下次調(diào)試時(shí)也會(huì)從watch窗口移除,改到locals窗口內(nèi)顯示。locals窗口是查看當(dāng)前函數(shù)處內(nèi)部變量值得窗口。
watch框內(nèi)的變量只有在當(dāng)前變量作用域的才可以添加,例如全局變量。局部變量即使添加后,在下次調(diào)試時(shí)也會(huì)從watch窗口移除,改到locals窗口內(nèi)顯示。這個(gè) ' 符號(hào)似乎是表示該變量是上次調(diào)試時(shí)定義的,好像沒(méi)其他什么作用。做過(guò)測(cè)試,只要成功被記錄進(jìn)watch窗口的全局變量,即使該量的物理地址發(fā)生了變化,下次調(diào)試時(shí)調(diào)試器也能準(zhǔn)確跟蹤到,并在watch內(nèi)刷新結(jié)果。locals窗口是查看當(dāng)前函數(shù)處內(nèi)部變量值得窗口。不要被誤導(dǎo)。如果在WATCH窗口看內(nèi)部變量,會(huì)是錯(cuò)誤的。誤導(dǎo)你的。。。。。。。。。。!
我的理解:Call Stack + Local窗口變量自動(dòng)的添加,取決于程序設(shè)置斷點(diǎn)停止的位置有哪些局部變量和顯示停止時(shí)刻的值。斷點(diǎn)作用域改變,窗口中的變量名也隨之改變。程序運(yùn)行狀態(tài)無(wú)法顯示。
上面圖片源自于:KEIL help文檔
當(dāng)進(jìn)入程序狀態(tài)時(shí),觀察窗口默認(rèn)的頁(yè)面是“l(fā)ocals",這個(gè)窗口頁(yè)面會(huì)動(dòng)態(tài)顯示當(dāng)前模塊變量(即局部變量和全局變量),一旦模塊變了(即 域 變了),屬于這個(gè)模塊(域)的局部變量就不會(huì)在在這窗口頁(yè)面出現(xiàn)的。所以說(shuō)這個(gè)窗口頁(yè)面是動(dòng)態(tài)顯示就是這個(gè)原因。 觀察窗口的其它頁(yè)面,如"watch #1"等等,這里是觀察指定的變量的地方,可以指定任何一個(gè)!,如:PC。當(dāng)指定某一局部變量時(shí),如果指定的這一時(shí)刻沒(méi)有定義這個(gè)變量,這個(gè)指定變量就顯示為“?????”,當(dāng)定義后,它就有值。如果有兩個(gè)同名的變量,有兩種情況。第一:域窄的被域廣的取當(dāng),即不能顯示域窄的變量。第二:域沒(méi)有關(guān)系,第一次出現(xiàn)的局部變量被顯示,以后的同名變量不能被顯示。 調(diào)試狀態(tài)下,鼠標(biāo)選中變量后點(diǎn)右鍵,彈出的菜單有增加到變量窗口一欄,添加到watch #1 watch #2都可以。 call stack是調(diào)用堆棧里的值。
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08