0

System.Adress_image を使用して、プログラム内の割り当てられたオブジェクトのすべてのアドレスを一覧表示しようとしています。

ただし、私が持っている変数のアドレスしか出力できません。たとえば、スタックがあり、すべてのスタック要素のアドレスを出力できます。次に、スタック ノードの 1 つへのポインターを削除して、オブジェクトがスタックに存在しないようにします。

削除されたノードは自動的にガベージ コレクションされない (Ada 2005) ため、そのノードのアドレスを知りたいです。そして、プログラムで割り当てられたすべてのオブジェクトのアドレスではないのはなぜですか?

どうすればこのタスクを達成できますか?

システムパッケージ: http://www.adaic.org/resources/add_content/standards/05aarm/html/AA-13-7.html

ゾンビは「死んだ物体だが生きている」と呼ばれます。

4

2 に答える 2

5

2 つの可能性:

割り当てられたオブジェクトを制御された型として実装し、それらのアドレスを初期化、調整、ファイナライズ ルーチンの一部として記録します。

必要な情報を収集するカスタムの割り当てルーチンと割り当て解除ルーチンを使用して、それらのカスタムストレージ プールを実装します。

または、代わりに、Ada.Containers ライブラリを使用してストレージ タイプを実装し、ゾンビのクリーンアップについて IT に心配させる方法を見つけます...

于 2013-04-15T16:37:28.803 に答える