从Ada中的内存地址读取值

时间:2015-10-22 16:30:22

标签: ada

我正在尝试编写一个给出内存地址和数据类型的过程,将在该内存位置显示数据的值。

我认为最好的方法是在通用包Address_To_Access_Conversions中使用To_Pointer函数,但每次我尝试使用它时都会出错:

所选组件“Address_To_Access_Conversions”中的无效前缀

我无法找到有关如何实际使用Address_To_Access_Conversions的任何示例。而且我可能走错了路。

有没有人知道如何使用上面的包将地址转换为Access类型,更重要的是,这是一种访问给定地址的数据以显示到控制台的好方法吗?

修改

我在研究中发现的解决方案是使用以下内容:

for X'Address use dummy_address;

唯一的问题是,在代码中的那一点,我没有计算出虚拟地址是什么,并且该语句只能在声明时起作用,在“开始”之前我通过块编程找到了解决方法:< / p>

dummy_address := base_address + offset;

Dummy_String:
declare
  subtype Xdummy is Integer;
  S : Xdummy;
  for S'Address use dummy_address;
begin
  --More code here
end Dummy_String;

0 个答案:

没有答案