Ada语言 - 我的.data段中只有一个单词

时间:2011-06-23 10:04:59

标签: ada segment

我希望你们能帮助我。

我有一个正确编译的Ada项目。由于我是一个好奇的人,我决定obj转储我的目标文件。令我惊讶的是,我的所有Ada对象在.data段中只有一个单词。所有都具有相同的名称,objectname_E。有人建议这是一个精心制作的旗帜吗?这是对的吗?

一个例子。

0 .text         00000078  00000000  00000000  00000034  2**2
              CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data         00000001  00000000  00000000  000000ac  2**0
              CONTENTS, ALLOC, LOAD, DATA
2 .bss          00000000  00000000  00000000  000000ad  2**0
              ALLOC

00000000 g     O .data  00000001 watchdog_driver_E

我试图谷歌这个,但没有找到任何东西。

1 个答案:

答案 0 :(得分:1)

这是一个精心制作的旗帜。

gnatbind生成的主程序中,您会找到一个包含例如

的过程adainit
procedure adainit is
   ...
   E021 : Boolean; pragma Import (Ada, E021, "system__exception_table_E");
   ...
begin
   ...
   System.Exception_Table'Elab_Body;
   E021 := True;
   ...

显然,这可以在已翻译的包中使用,以告知包是否已经详细说明,如果没有,则报告访问前详细错误(我说'可能'因为我不能立即看到任何详细说明的例子实际访问了标志。)