如何在Ada找到僵尸?

0 ada adt zombie-process

我试图使用System.Adress_image列出程序中已分配对象的所有地址.

但是我只能为我拥有的变量打印地址.例如,我有一个堆栈,我可以打印所有堆栈元素地址.然后我删除指向其中一个堆栈节点的指针,以便该对象不再位于堆栈中.

删除的节点不会自动被垃圾收集(Ada 2005),所以我想知道该节点的地址.为什么不在程序中所有已分配对象的地址?

我怎么能完成这个任务?

系统包:http://www.adaic.org/resources/add_content/standards/05aarm/html/AA-13-7.html

僵尸被称为"死亡的物体,但仍然活着".

Bri*_*ond 5

两种可能性:

将已分配的对象实现为受控类型,并将其地址记录为Initialize,Adjust,Finalize例程的一部分.

为它们实现自定义存储池,使用自定义分配和解除分配例程来收集所需的信息.

或者,找到一种方法来使用Ada.Containers库来实现您的存储类型,让IT担心清理僵尸......