在Ada中改变它的值的常量

时间:2017-08-16 09:28:42

标签: constants ada

知道常量地址的东西能改变它吗?或者Ada对此有所了解吗?

我目前正在开展一个大项目,我无法阅读项目的所有代码。但我必须调试它的一部分。我有一些奇怪的麻烦。实际上,我已经改变了这样一个变量的声明 我的包裹中My_Var : constant Integer :=1;(我们称之为My_Package) 然后在项目中的变量上做了一些事情(黑盒子) 当我最后执行该代码时,

My_Package.My_Var<=0它会返回True

我的问题是,知道我的常量地址的某些内容是否可以改变它,或者ada对此有所了解?

PS:我做了一个(gdb) watch My_Package.My_Var并没有停止程序,直到我在if My_Package.My_Var<=0

之后收到我的错误

PS PS:我也尝试在function中更改常量,返回一个常量值,然后错误消失(但没有帮助我查看变量的修改位置) 希望您能够帮助我。

由于

1 个答案:

答案 0 :(得分:1)

知道常量地址的东西可以改变它。例外情况是,常量存储在(EP)ROM中,或者编译器是否与操作系统密谋将其置于可执行文件的只读部分。

一般来说,如果你非常关心所需的工作,Ada可以让你解决所有的安全问题。