可以知道某個常量的地址是否改變了它,或者Ada對此有所保護?不斷改變它在Ada中的價值
我目前正在研究一個大項目,我無法讀取項目的所有代碼。但我必須調試它的一部分。我有奇怪的麻煩。事實上,我已經改變了我的包中的 My_Var : constant Integer :=1;
這個變量的聲明(我們稱之爲My_Package
) 然後在項目中完成一些東西(黑盒) 當我在最後執行該代碼時,
My_Package.My_Var<=0
返回True
我的問題是,可以的東西,知道我的不斷變化的ADRESS,或ADA固定樣?
PS:我做了(gdb) watch My_Package.My_Var
,並沒有停止程序,直到我得到我的錯誤if My_Package.My_Var<=0
PS PS後:我也試圖改變我常在function
返回一個恆定值,並與消失的bug(但沒有幫助我看到變量在哪裏被修改) 希望你能幫助我。
謝謝
常數可以映射(具有地址方面)到只讀硬件端口。這樣的常量通常應該標記爲易失性的,以便重新讀取(觀察硬件狀態的任何變化)。這通常適用於嵌入式處理器(MCU)目標......您要處理的目標系統是什麼? –
我正在研究應該在嵌入式x86上工作的代碼,但我必須使用它Linux x86。 因此,這可能是我的行爲(硬件的地址在Linux編譯上不對應) –