2014-08-25 19:40:31 -04:00
|
|
|
USING: assocs help.markup help.syntax vm words ;
|
2015-07-09 09:54:55 -04:00
|
|
|
IN: tools.image-analyzer.gc-info
|
2014-08-24 20:25:12 -04:00
|
|
|
|
2015-07-09 09:54:55 -04:00
|
|
|
ARTICLE: "tools.image-analyzer.gc-info" "GC maps decoder"
|
2014-08-24 20:25:12 -04:00
|
|
|
"A vocab that disassembles words gc maps. It's useful to have when debugging garbage collection issues." ;
|
|
|
|
|
2015-07-09 09:54:55 -04:00
|
|
|
HELP: word>gc-maps
|
|
|
|
{ $values { "word" word } { "gc-maps" assoc } }
|
2014-08-24 20:25:12 -04:00
|
|
|
{ $description "Main word of the vocab. Decodes the gc maps for a word into an assoc with the following format:"
|
|
|
|
{ $list
|
2016-10-08 03:52:35 -04:00
|
|
|
"Each key is the return addess of a gc callsite (as an offset relative to the blocks entry point)."
|
2014-08-24 20:25:12 -04:00
|
|
|
{
|
|
|
|
"Each value is a two-tuple where:"
|
|
|
|
{ $list
|
2016-10-08 03:52:35 -04:00
|
|
|
"The first element contains the scrub patterns for the gc roots."
|
2014-08-24 20:25:12 -04:00
|
|
|
"The second element is a sequence of derived roots for the callsite."
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
|
|
|
"USING: effects prettyprint ;"
|
2015-07-09 09:54:55 -04:00
|
|
|
"\\ <effect> word>gc-maps ."
|
2016-10-08 03:52:35 -04:00
|
|
|
"{ { 155 { ?{ f t t t t } { } } } }"
|
2014-08-24 20:25:12 -04:00
|
|
|
}
|
|
|
|
} ;
|
|
|
|
|
2015-07-09 09:54:55 -04:00
|
|
|
ABOUT: "tools.image-analyzer.gc-info"
|