dot file
/*nginx array and list*/
digraph G {
nodesep=.05;
rankdir=LR;
subgraph cluster1{
label="ngx_list_t";
labelloc=b;
rankdir=LR;
fixedsize = true;
stype=filled;
color=white;
node [shape=record,width=.1,height=.1];
node2 [label = "<f0> part|<f1> size|<f2> nalloc|<f3> *last",height=2.5];
node [width = 1.5];
node3 [label = "<n> *elts | nelts |<p> *next"];
node4 [label = "<n> *elts | nelts |<p> *next"];
node5 [label = "<n> *elts | nelts |<p> *next"];
node6 [label = "{<n> elem| elem| elem| elem|<p> ......}"];
node7 [label = "{<n> elem| elem| elem| elem|<p> ......}"];
node8 [label = "{<n> elem| elem| elem| elem|<p> ......}"];
node2:f0:ne -> node3:n:nw;
node2:f0:se -> node3:p:sw;
node3:p:e -> node4:n:nw;
node4:p:e -> node5:n:nw;
node3:n:e -> node6:n:w;
node4:n:e -> node7:n:w;
node5:n:e -> node8:n:w;
node2:f3:e -> node5:n:nw;
}
subgraph cluster0{
label="ngx_array_s";
labelloc=b;
rankdir=LR;
fixedsize = true;
stype=filled;
color=white;
node [shape=record,width=.1,height=.1];
node0 [label = "<f0> *elts|<f1> nelts|<f2> size|<f3> nalloc",height=2.5];
node [width = 1.5];
node1 [label = "{<n> elem| elem| elem| elem|<p> ......}"];
node0:f0 -> node1:n;
}
}