Creating the graphical depiction is left as an exercise to the reader :-). Start at the GraphViz page on the Design Patterns Wiki Web.
digraph Stepper {
graph [ size="43.5,33.5",
page="44,34",
margin="0.25,0.25",
label="doBuild.log",
ratio="fill",
orientation=portrait ];
{
node [shape=plaintext];
/* the time stamps */
"10:47:45" ->
"10:47:46" ->
"10:54:34" ->
"10:54:36" ->
"10:56:30" ->
"10:56:31" ->
"10:56:33" ->
"10:56:34" ->
"10:56:37" ->
"10:56:39" ->
"10:56:43" ->
"10:56:44" ->
"10:56:48" ->
"10:56:51" ->
"10:57:02" ->
"10:57:03" ->
"10:57:06" ->
"10:57:09" ->
"10:57:15" ->
"10:57:39" ->
"11:06:23" ->
"11:07:41" ->
"11:11:14" ->
"11:16:15" ->
"11:16:17" ->
"11:16:32" ->
"11:16:33" ->
"11:16:35" ->
"11:16:36" ->
"11:16:39" ->
"11:16:42" ->
"11:16:43" ->
"11:16:46" ->
"11:16:48" ->
"11:16:50" ->
"11:16:52" ->
"11:16:57" ->
"11:17:12" ->
"11:18:00" ->
"11:20:14" ->
"11:20:55" ->
"11:49:16" ->
"11:49:19" ->
"11:51:06" ->
"11:51:07";
"PID 14203";
"PID 14572";
"PID 14585";
"PID 14658";
"PID 14665";
"PID 14672";
"PID 14877";
"PID 14884";
"PID 15023";
"PID 16081";
"PID 16092";
"PID 16165";
"PID 16238";
"PID 16311";
"PID 16318";
"PID 16457";
"PID 18241";
};
node [shape=box];
{ rank = same; "10:47:45"; "Msg 0"; }
{ rank = same; "10:47:46"; "Msg 2"; }
{ rank = same; "10:54:34"; "Msg 1"; }
{ rank = same; "10:54:36"; "Msg 3";
"Msg 4";
"Msg 5";
"Msg 6"; }
{ rank = same; "10:56:30"; "Msg 7"; }
{ rank = same; "10:56:31"; "Msg 8";
"Msg 9"; }
{ rank = same; "10:56:33"; "Msg 10"; }
{ rank = same; "10:56:34"; "Msg 20"; }
{ rank = same; "10:56:37"; "Msg 11"; }
{ rank = same; "10:56:39"; "Msg 12"; }
{ rank = same; "10:56:43"; "Msg 13";
"Msg 18"; }
{ rank = same; "10:56:44"; "Msg 30"; }
{ rank = same; "10:56:48"; "Msg 22"; }
{ rank = same; "10:56:51"; "Msg 14"; }
{ rank = same; "10:57:02"; "Msg 15";
"Msg 28"; }
{ rank = same; "10:57:03"; "Msg 24"; }
{ rank = same; "10:57:06"; "Msg 16";
"Msg 17"; }
{ rank = same; "10:57:09"; "Msg 26"; }
{ rank = same; "10:57:15"; "Msg 19"; }
{ rank = same; "10:57:39"; "Msg 21"; }
{ rank = same; "11:06:23"; "Msg 23"; }
{ rank = same; "11:07:41"; "Msg 25"; }
{ rank = same; "11:11:14"; "Msg 27"; }
{ rank = same; "11:16:15"; "Msg 29"; }
{ rank = same; "11:16:17"; "Msg 31";
"Msg 32";
"Msg 33";
"Msg 34"; }
{ rank = same; "11:16:32"; "Msg 35"; }
{ rank = same; "11:16:33"; "Msg 36";
"Msg 37"; }
{ rank = same; "11:16:35"; "Msg 38"; }
{ rank = same; "11:16:36"; "Msg 49"; }
{ rank = same; "11:16:39"; "Msg 39";
"Msg 45"; }
{ rank = same; "11:16:42"; "Msg 40"; }
{ rank = same; "11:16:43"; "Msg 51"; }
{ rank = same; "11:16:46"; "Msg 41"; }
{ rank = same; "11:16:48"; "Msg 42";
"Msg 53"; }
{ rank = same; "11:16:50"; "Msg 47"; }
{ rank = same; "11:16:52"; "Msg 43";
"Msg 44"; }
{ rank = same; "11:16:57"; "Msg 55"; }
{ rank = same; "11:17:12"; "Msg 46"; }
{ rank = same; "11:18:00"; "Msg 48"; }
{ rank = same; "11:20:14"; "Msg 50"; }
{ rank = same; "11:20:55"; "Msg 52"; }
{ rank = same; "11:49:16"; "Msg 54"; }
{ rank = same; "11:49:19"; "Msg 56";
"Msg 57";
"Msg 58";
"Msg 59"; }
{ rank = same; "11:51:06"; "Msg 60"; }
{ rank = same; "11:51:07"; "Msg 61";
"Msg 62"; }
"PID 14203" ->
"Msg 2" ->
"Msg 1" ->
"Msg 3" ->
"Msg 4" ->
"Msg 5" ->
"Msg 6";
"PID 14572" ->
"Msg 7" ->
"Msg 8" ->
"Msg 9";
"PID 14585" ->
"Msg 10" ->
"Msg 20" ->
"Msg 19";
"PID 14658" ->
"Msg 11" ->
"Msg 18" ->
"Msg 16";
"PID 14665" ->
"Msg 12" ->
"Msg 30" ->
"Msg 29" ->
"Msg 31" ->
"Msg 32" ->
"Msg 33" ->
"Msg 34";
"PID 14672" ->
"Msg 13" ->
"Msg 22" ->
"Msg 21";
"PID 14877" ->
"Msg 14" ->
"Msg 28" ->
"Msg 27";
"PID 14884" ->
"Msg 15" ->
"Msg 24" ->
"Msg 23";
"PID 15023" ->
"Msg 17" ->
"Msg 26" ->
"Msg 25";
"PID 16081" ->
"Msg 35" ->
"Msg 36" ->
"Msg 37";
"PID 16092" ->
"Msg 38" ->
"Msg 49" ->
"Msg 48";
"PID 16165" ->
"Msg 39" ->
"Msg 45" ->
"Msg 43";
"PID 16238" ->
"Msg 40" ->
"Msg 51" ->
"Msg 50";
"PID 16311" ->
"Msg 41" ->
"Msg 47" ->
"Msg 46";
"PID 16318" ->
"Msg 42" ->
"Msg 53" ->
"Msg 52";
"PID 16457" ->
"Msg 44" ->
"Msg 55" ->
"Msg 54" ->
"Msg 56" ->
"Msg 57" ->
"Msg 58" ->
"Msg 59";
"PID 18241" ->
"Msg 60" ->
"Msg 61" ->
"Msg 62";
}