util: Add ini string as tooltip info in dot output
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 4 Sep 2013 17:23:00 +0000 (13:23 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 4 Sep 2013 17:23:00 +0000 (13:23 -0400)
This patch adds the config ini string as a tooltip that can be
displayed in most browsers rendering the resulting svg. Certain
characters are modified for HTML output.

Tested on chrome and firefox.

src/python/m5/util/dot_writer.py

index 8d93b42632bd308950b4838da00c6666edd8bd84..a6f721a0ca89a473f9ded709c4188f742f73a440 100644 (file)
@@ -129,10 +129,22 @@ def dot_add_edge(simNode, callgraph, full_port_name, peerPort):
         callgraph.add_edge(pydot.Edge(full_port_name, peer_port_name))
 
 def dot_create_cluster(simNode, full_path, label):
+    # get the parameter values of the node and use them as a tooltip
+    ini_strings = []
+    for param in sorted(simNode._params.keys()):
+        value = simNode._values.get(param)
+        if value != None:
+            # parameter name = value in HTML friendly format
+            ini_strings.append(str(param) + "&#61;" +
+                               simNode._values[param].ini_str())
+    # join all the parameters with an HTML newline
+    tooltip = "&#10;".join(ini_strings)
+
     return pydot.Cluster( \
                          full_path, \
                          shape = "Mrecord", \
                          label = label, \
+                         tooltip = "\"" + tooltip + "\"", \
                          style = "\"rounded, filled\"", \
                          color = "#000000", \
                          fillcolor = dot_gen_colour(simNode), \