Call Call Graph

Posted on Tue 09 January 2018 in note • Tagged with cscope, graphviz, dotLeave a comment

為了讀 OAI 的程式碼,一直找一些 call graph 的工具。最後用了 chihchun 好久以前寫的 callgraphviz 來改成 Call Call Graph

叫 Call Call Graph 只是因為我要畫 caller 與 callee。大架構沒有改太多,還是照原本的用 cscope 當後端的資料庫。查詢後生出 dot 的圖再餵給 xdot 來畫圖。花最多時間的就是查 python 3 的語法及 PyGObject 的 api。

我自己加了可以把現在的查詢資料清掉的功能,只要按一下 reload 鈕就可以清掉。不然累積太多查詢會造成節點太多。另外加了可以忽略特定 symbol 的功能,因為我會把 function 的 …

Continue reading

Pelican 裝 ligquid tags plugin

Posted on Mon 17 October 2016 in note • Tagged with graphviz, pelican, pythonLeave a comment

為了之後要畫圖方便,加裝了 ligquid tags 的 plugin。方法很簡單只要加入 PLUGIN_PATHSPLUGIN 即可。

PLUGIN_PATHS = ['../pelican-plugins']
PLUGINS = ['liquid_tags.graphviz']

之後底下的 dot 語言就可以畫出 graphviz 的圖了。

{% graphviz
    dot {
        digraph graphname {
            a -> b -> c;
            b -> d;
        }
    }
%}

但是

因為我用的是 Python 3 會因為 base64.b64encode 會輸出 byte string。這會導致 inline base64 encodeing 的格式跑掉,所以圖會出不來。改了一下程式碼發了個 PR #798

底下是 …

Continue reading