知道常量地址的东西能改变它吗?或者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
中更改常量,返回一个常量值,然后错误消失(但没有帮助我查看变量的修改位置)
希望您能够帮助我。
由于
答案 0 :(得分:1)
知道常量地址的东西可以改变它。例外情况是,常量存储在(EP)ROM中,或者编译器是否与操作系统密谋将其置于可执行文件的只读部分。
一般来说,如果你非常关心所需的工作,Ada可以让你解决所有的安全问题。