D469 - PPSA02664's wall is not _Getpctype; the trace was naming the wrong function

measured, and CORRECTED BY D470 - 2026-09-02 (user-directed /loop, continuing D468)

Read D470 first. The measurements below are sound and still stand. The conclusion drawn from them - that the report mislabels the faulting call - is wrong. The report was not mislabelling anything: it was printing a trace from an earlier run, because the worker had stopped writing new ones. The title of this entry is left as it was written rather than quietly improved, because the mistake is the point.

_Getpctype is now implemented from measured hardware data (D468), and PPSA02664 faults in exactly the same place with exactly the same message: image+0xb14be3, read of 0x7fff00cf, rax=0x7fff0001, and a report line reading libc::_Getpctype was called 1 times and nothing implements it.

That line is false, and this entry is the measurement showing it.

What was measured

Probes in the dispatcher and the label table (all removed; both files are byte-identical to HEAD):

The hypothesis this kills

sceKernelDlsym is not involved. The guest makes zero dlsym lookups this run - dlsym already logs every distinct name it is asked for, and the log is empty. The ~141k dlsym calls that made the two-routes theory attractive are an aggregate across 65 runs of the whole corpus, not this title. A per-run number was read as a per-title one.

What this costs

D443, D449, D450 and D459 all name _Getpctype as one of this title's two walls, and D450 built a thread-race model on top of that pairing. The image+0xb14be3 half of that model rests on a label, and the label is wrong. The race D450 describes may still be real - it was measured from fault sites, which are not in question - but "the 0xb14be3 branch is _Getpctype" is not, and D450's prediction that implementing _Getpctype would push every run onto the allocator is untested rather than confirmed.

This is the failure principle 3 already names, one level up. A report that says "nothing implements it" about a function that demonstrably ran 415 times is reporting more than its measurement supports, which is exactly what the five tools in that section did. The dispatcher knows the truth - is_implemented(54) is true - so the disagreement is between the trace's own two halves, not between the trace and reality.

The mechanism is not yet found, and this entry deliberately stops short of guessing it. What is established is the disagreement and its direction; whether the fault is being attributed to the wrong recorded call, or the label table is consulted with the wrong index, is the next question. Naming a cause here would repeat the mistake being recorded.

What follows

setenv is the concrete candidate: unimplemented, called three times immediately before the fault, answering the placeholder the guest then reads through. Implementing it is an intervention, not a diagnosis (D224/D226/D227) - if the wall moves, that needs a second observation of a different kind before it counts. And it is a candidate rather than a conclusion: the value dereferenced at 0xb14be3 was not traced to its producer, only shown not to come from _Getpctype.

The wall did not move this tick, and nothing here claims progress.