可以知道某个常量的地址是否改变了它,或者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编译上不对应) –