mirror of
https://gitlab.com/apparmor/apparmor
synced 2025-08-22 01:57:43 +00:00
Add debugging dump for DFA partition minimization
Allow dumping out which states where dropped during partition minimization and which state became the partitions representative state. Signed-off-by: John Johansen <john.johansen@canonical.com> Acked-By: Steve Beattie <sbeattie@ubuntu.com>
This commit is contained in:
parent
414e5bf560
commit
627638a6cf
@ -30,6 +30,7 @@ typedef enum dfaflags {
|
||||
DFA_CONTROL_REMOVE_UNREACHABLE = 1 << 7,
|
||||
DFA_CONTROL_TRANS_HIGH = 1 << 8,
|
||||
|
||||
DFA_DUMP_MIN_PARTS = 1 << 13,
|
||||
DFA_DUMP_UNIQ_PERMS = 1 << 14,
|
||||
DFA_DUMP_MIN_UNIQ_PERMS = 1 << 15,
|
||||
DFA_DUMP_TREE_STATS = 1 << 16,
|
||||
|
@ -477,10 +477,14 @@ void DFA::minimize(dfaflags_t flags)
|
||||
* to states within the same partitions, however this can slow
|
||||
* down compressed dfa compression as there are more states,
|
||||
*/
|
||||
if (flags & DFA_DUMP_MIN_PARTS)
|
||||
cerr << "Partitions after minimization\n";
|
||||
for (list<Partition *>::iterator p = partitions.begin();
|
||||
p != partitions.end(); p++) {
|
||||
/* representative state for this partition */
|
||||
State *rep = *((*p)->begin());
|
||||
if (flags & DFA_DUMP_MIN_PARTS)
|
||||
cerr << *rep << " : ";
|
||||
|
||||
/* update representative state's transitions */
|
||||
if (rep->cases.otherwise) {
|
||||
@ -498,6 +502,8 @@ void DFA::minimize(dfaflags_t flags)
|
||||
* and accumulate permissions */
|
||||
for (Partition::iterator i = ++(*p)->begin(); i != (*p)->end(); i++) {
|
||||
//cerr << " " << (*i)->label;
|
||||
if (flags & DFA_DUMP_MIN_PARTS)
|
||||
cerr << **i << ", ";
|
||||
(*i)->label = -1;
|
||||
rep->accept |= (*i)->accept;
|
||||
rep->audit |= (*i)->audit;
|
||||
@ -506,6 +512,8 @@ void DFA::minimize(dfaflags_t flags)
|
||||
final_accept++;
|
||||
//if ((*p)->size() > 1)
|
||||
//cerr << "\n";
|
||||
if (flags & DFA_DUMP_MIN_PARTS)
|
||||
cerr << "\n";
|
||||
}
|
||||
if (flags & DFA_DUMP_STATS)
|
||||
cerr << "\033[2KMinimized dfa: final partitions "
|
||||
|
@ -216,6 +216,8 @@ optflag_table_t dumpflag_table[] = {
|
||||
DFA_DUMP_UNIQ_PERMS },
|
||||
{ 1, "dfa-minimize-uniq-perms", "Dump unique perms post minimization",
|
||||
DFA_DUMP_MIN_UNIQ_PERMS },
|
||||
{ 1, "dfa-minimize-partitions", "Dump dfa minimization partitions",
|
||||
DFA_DUMP_MIN_PARTS },
|
||||
{ 1, "compress-progress", "Dump progress of compression",
|
||||
DFA_DUMP_TRANS_PROGRESS | DFA_DUMP_TRANS_STATS },
|
||||
{ 1, "compress-stats", "Dump stats on compression",
|
||||
|
Loading…
x
Reference in New Issue
Block a user