-->

Graphviz edges between ports belonging to the same

2019-06-04 03:41发布

问题:

I'm attempting to create function call graphs for specific code execution paths within Linux. I have the following digraph, which uses record fields (they are deprecated, I know, I just started using graphviz and only recently saw that):

digraph {
  node[fontsize=9,shape=Mrecord,style=filled,fillcolor=white];

  subgraph cluster_0 {
    style=filled; fillcolor=lightgrey;
    open[label="open.c|{<f0>do_sys_open()}"];
    namei[label="namei.c|{<f0>do_filp_open()\l|\
                          <f1>path_lookup_open()\l|\
                          <f2>do_path_lookup()\l}"];
    file_table[label="file_table.c|{<f0>get_empty_filp()}"];
    open:f0->namei:f0;
    namei:f0:e->namei:f1:e;
    namei:f1:e->namei:f2:e;
    namei:f1:e->file_table:f0;
  }
}

The generated image:

As the image shows, the arrows pointing between ports of the same record node always come out at an angle. Is there any way to "simplify" them so that they come out straight, or to somehow otherwise make this look neater?