MPS issue job001659

TitleCulprit analysis is too hard.
Statusopen
Priorityoptional
Assigned userRichard Brooksby
OrganizationRavenbrook
DescriptionCulprit analysis is too hard.

By culprit analysis we mean finding out why the heap is too large, why
this object (or objects) is alive, and similar questions.

Culprit analysis would be useful for Configura [1].
AnalysisThe absolute minimum interface would be one where the client passes a
reference to an object (managed by the MPS) to the MPS and asks "find
me an object that references this object".

Related issue is metadata about object and non-object addresses:
job001149.

In general a reference to an object can be "encrypted" inside a client
object in an arbitrary manner. All the MPS knows is that an object had
a particular reference _somewhere_ inside it. The MPS should answer
the "find me an object that references this object" with: object, pool,
offset, client format specific userdata. The pool is necessary so that the
format can be derived. And whilst I just said that the MPS cannot know
the offset within an object, if the client scanner uses the very common
method of passing interior object addresses to MPS_FIX2 (that is,
pointing directly at the references stored inside the object), then the
MPS can spot this and generate its own offset. The userdata can be
used by the client for more complicated cases.

If we constrain the answer to be the object with lowest address larger
than some client specified address then we have an iteration protocol
to find all such objects.

2007-09-18 DRJ:

Proposed interface in [2] and [3].

Branch created:
//info.ravenbrook.com/project/mps/branch/2007-09-18/findref/manual/...
How foundunknown
Evidence[1] //info.ravenbrook.com/mail/2007/01/03/12-06-52/0.txt e-mail message from Nick Barnes.
[2] //info.ravenbrook.com/mail/2007/06/04/15-56-28/0.txt e-mail message from drj.
[3] //info.ravenbrook.com/mail/2007/06/06/13-36-55/0.txt e-mail message from drj.
Observed in1.107.0
Created byDavid Jones
Created on2007-06-04 12:58:55
Last modified byRichard Brooksby
Last modified on2013-06-16 07:13:09
History2007-06-04 DRJ Created.
2007-09-18 DRJ Linked to proposal.
2007-09-18 DRJ Link to branch
2013-03-19 GDR Assigned to RB.
2013-06-16 RB Downgraded to "optional" as this isn't affecting anyone (see job003499).