+++ /dev/null
-#!/usr/sbin/dtrace -q -s
-
-
-string opnames[unsigned]; /* common opcode names */
-
-
-dtrace:::BEGIN
-{
- printf("ready...\n");
- opnames[0] = "never";
- opnames[1] = "always";
- opnames[2] = "identifier...";
- opnames[3] = "anchor apple";
- opnames[4] = "anchor = ...";
- opnames[5] = "!legacy infokey!";
- opnames[6] = "AND";
- opnames[7] = "OR";
- opnames[8] = "cdhash";
- opnames[9] = "NOT";
- opnames[10] = "info[...]";
- opnames[11] = "cert[subject...]";
- opnames[12] = "anchor trusted...";
- opnames[13] = "anchor trusted...";
- opnames[14] = "cert[field...]";
- opnames[15] = "anchor apple generic";
- opnames[16] = "entitlement[...]";
- opnames[17] = "cert[policy...]";
- opnames[18] = "anchor NAMED";
- opnames[19] = "(NAMED)";
-}
-
-
-codesign*:::eval-reqint-start
-{
- printf("%8u %s[%d] START(%p,%d)\n",
- timestamp, execname, pid,
- arg0, arg1);
-}
-
-codesign*:::eval-reqint-end
-{
- @eval[arg1] = count();
-}
-
-codesign*:::eval-reqint-end
-/ arg1 == 0 /
-{
- printf("%8u %s[%d] SUCCESS\n",
- timestamp, execname, pid);
-}
-
-codesign*:::eval-reqint-end
-/ arg1 == 4294900246 /
-{
- printf("%8u %s[%d] FAIL\n",
- timestamp, execname, pid);
-}
-
-codesign*:::eval-reqint-end
-/ arg1 != 4294900246 && arg1 != 0 /
-{
- printf("%8u %s[%d] FAIL(%d)\n",
- timestamp, execname, pid,
- arg1);
-}
-
-codesign*:::eval-reqint-unknown*
-{
- printf("%8u %s[%d] %s(%d)\n",
- timestamp, execname, pid, probename,
- arg0);
-}
-
-codesign*:::eval-reqint-fragment-load
-/ arg2 != 0 /
-{
- printf("%8u %s[%d] frag-load(%s,%s,%p)\n",
- timestamp, execname, pid,
- copyinstr(arg0), copyinstr(arg1), arg2);
- @fragload[copyinstr(arg0), copyinstr(arg1)] = count();
- @fraguse[copyinstr(arg0), copyinstr(arg1)] = count();
-}
-
-codesign*:::eval-reqint-fragment-load
-/ arg2 == 0 /
-{
- printf("%8u %s[%d] frag-load(%s,%s,FAILED)\n",
- timestamp, execname, pid,
- copyinstr(arg0), copyinstr(arg1));
- @fragload[copyinstr(arg0), copyinstr(arg1)] = count();
- @fraguse[copyinstr(arg0), copyinstr(arg1)] = count();
-}
-
-codesign*:::eval-reqint-fragment-hit
-{
- printf("%8u %s[%d] frag-hit(%s,%s)\n",
- timestamp, execname, pid,
- copyinstr(arg0), copyinstr(arg1));
- @fraguse[copyinstr(arg0), copyinstr(arg1)] = count();
-}
-
-
-/*
- * Trace opcodes as they're encountered and evaluated
- */
-codesign*:::eval-reqint-op
-{
- self->traced = 0;
- @opcodes[arg0] = count();
-}
-
-codesign*:::eval-reqint-op
-/ !self->traced /
-{
- printf("%8u %s[%d] %s\n", timestamp, execname, pid,
- opnames[arg0]);
-}
-
-
-/*
- * Print out aggregates at the end
- */
-dtrace:::END
-{
- printf("\nREQUIREMENT EVALUATIONS:\n");
- printa("\t%d (%@d)\n", @eval);
-
- printf("\nREQUIREMENT OPCODES EVALUATED:\n");
- printa("\t%5d (%@d)\n", @opcodes);
-
- printf("\nFRAGMENTS LOADED:\n");
- printa("\t%s %s (%@d)\n", @fragload);
-}