用MDK調試一塊STM32F207的程序,想查看一下變量卻發現watch窗口總是
<not in scope>和<cannot evaluate>,無奈湊合着通過printf函數進行串口打印查看。
1 編譯器把這個局部變量給優化掉了,並沒有在內存中生成,把優化級別改為Level 0,重新編譯。
Keil默認優化是等級3,最高優化,這時就會把一些可有可無的操作優優掉,當然也會把仿真優化,所以只需要把優化調為0,不優化,則沒有有這個問題。
2 把變量定義為一個全局變量
對局部變量賦值后,要在后面使用該變量,keil里面才會顯示出其狀態
局部變量想看到的話,需要在那個變量那里打一個斷點,之后按一下F10就能看到了....
局部變量想看的話,那個地方加上斷點,同時避免優化問題,最好不要只聲明而不使用,否則也是看不到的。
REF
https://blog.csdn.net/wzk456/article/details/81697839