KLIC の実装では、 実行する各ゴールは対応するプログラム・コードへのポイ ンタを保持している。
トレース対象のゴールについては、 本来実行すべきコードのかわりに、 トレー サのコードへのポインタを格納しておくことによって、 実行しようとした時に 自然にトレーサのコードが呼び出されてしまうようにする。 これによって上 述の CALL ポートに対応するトレースが可能になる。 本来実行すべきコード へのポインタはゴールの追加引数として保持する。 CALL ポートで実行を継続 する場合は、 このポインタを用いて本来のコードを呼び出せば良い (図8.2参照)。
具体的には、トレース対象ゴールに対して、トレースがなされるように処理される。 具体的にはこの処理はtrace_goal()で以下のように行われる。
なお、untrace_goal()なる関数は上記の逆をおこなう。 ただし、ゴールレコードの再確保は行わず、単に述語構造体の付替のみを行い、 トレースゴールIDを戻り値として返す。