[prev in list] [next in list] [prev in thread] [next in thread]
List: radare
Subject: [radare] dirty games with graphviz
From: pancake () youterm ! com (pancake)
Date: 2008-10-05 23:05:43
Message-ID: 20081006010543.2afbd678 () youterm ! com
[Download RAW message or body]
On Fri, 3 Oct 2008 13:21:43 -0400
"Evan Teran" <evan.teran at gmail.com> wrote:
> Hey pancake (and everyone else).
>
> The graphs look really nice, I was wondering, which libraries do you
> use to generate them?
I wrote my own graphing library in Vala + GTK named 'Grava'. I use this
api from C in the core. There are some examples in vala/grava in both
languages. It implements a gtk widget that can be embedded in any gtk
container with some callbacks for the communiocation with the parent
application.
using Grava;
class Main : Gtk.Window {
Grava grava;
construct {
title = "Grava example";
...
grava = new Grava.Widget();
Node node = new Grava.Node();
node.set("label", "sym_main:");
node.set("color", "black");
node.set("body", "mov eax, 33\nxor ebx, ebx");
grava.add_node(node);
Node node2 = new Grava.Node();
node2.set("label", "sym_printf:");
node2.set("color", "red");
node2.set("body", "push ebp\nxor esp, esp");
grava.add_node(node2);
Edge edge = new Grava.Edge().with(node, node2);
edge.set("color", "red");
grava.add_edge(edge);
add (grava.get_widget());
}
static int main (string[] args)
{
Gtk.init(ref args)
var win = new Example();
win.show_all();
Gtk.main();
return 0;
}
}
...
The main current issue is the layout which I plan to temporally fix by using graphviz
to get the node positions. The renderer can be changed to be in libcaca or SDL :) but
actually it is not implemented..so the only renderer available is done in Cairo which
used OpenGL as backend.
read src/grava.c fmi
--pancake
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic