Hey pancake (and everyone else).

The graphs look really nice, I was wondering, which libraries do you
use to generate them?

Evan Teran

On Fri, Oct 3, 2008 at 12:54 PM, pancake <[EMAIL PROTECTED]> wrote:
> more shit for the graphs..just try to use shift+wheel to rotate the
> graph view and control+wheel to zoom. normal wheel is to scroll.
>
> also some right button stuff has been fixed, and now the graph nodes can
> be folded in the title by clicking the title (i'll fix it to be a double
> click next week).
>
> next week i'll fix the node splitting algorithm (if esteve doesnt do it
> before) and start adding some more fancy stuff to the graph view to
> prepare a POC of the GUI which i have in mind like symbol list, adding
> the left tab of gradare with user defined commands in one click and
> other stuff, so the graph view will be more usable.
>
> If you have any idea for the graph view..please let me know :) i'm
> interested on crazy tips :)
>
> i dont know if i'll have time for the 1.0 but i will also like to add a
> graph view for data structures...btw i'm gonna work more on the
> graphical interface.
>
> FYI a half a year or so i added support for GUI plugins in radare, they
> can be written in C, python or any other language and the idea is to
> make the GUI as pluggable as possible to get a flexible user interface.
>
> Hopefully i will not break any gnome usability tip :P
>
> http://radare.nopcode.org/img/g2.png
>
> Enjoy
>
> --pancake
>
> On Fri, 2008-10-03 at 13:41 +0200, pancake wrote:
>> And playing a bit with the Grava api i just make it render the graphviz
>> output inside the view as a separate layer...so if you pan the view the
>> nodes scroll faster than the image (like in videogames or so :P) here's
>> a shot of the preview:
>>
>> http://news.nopcode.org/g.png
>>
>> I have just added a small function to export a code analysis in dot
>> format to feed graphviz... i just want to play a bit with it to make the
>> graph interface better...let's see how to walk a graph:
>>
>> int graph_viz(struct program_t *prg)
>> {
>>         struct block_t *b0;
>>         struct list_head *head;
>>
>>         cons_printf("digraph code {\n");
>>         cons_printf("\tnode [color=lightblue2, style=filled];\n");
>>         list_for_each_prev(head, &(prg->blocks)) {
>>                 b0 = list_entry(head, struct block_t, list);
>>                 if (b0->tnext)
>>                         cons_printf("\t\"0x%08llx\" -> \"0x%08llx\";\n",
>>                             b0->addr, b0->tnext);
>>                 if (b0->fnext)
>>                         cons_printf("\t\"0x%08llx\" -> \"0x%08llx\";\n",
>>                             b0->addr, b0->fnext);
>>                 if (!b0->tnext && !b0->fnext)
>>                         cons_printf("\t\"0x%08llx\";\n", b0->addr);
>>         }
>>         cons_printf("}\n");
>> }
>>
>>
>> simple huh? :)
>>
>> then we just generate the analysis and call this function from the 'ag.'
>> command:
>>
>> prg = code_analyze(config.baddr + config.seek, depth );
>> graph_viz(prg);
>>
>> pretty stupid huh? :)
>>
>> If you want to test this. just pull the last version and type:
>>
>> $ radare -d ls
>> > !step 3
>> > ag. > foo.gv && dot -Tpng -o foo.png foo.gv && gqview foo.png
>>
>> Working with graphs and so is quite stupid and simple..but withotu a
>> decent frontend it is pretty useless... i will work on this a bit for
>> the 1.0.. i think it is an important point.
>>
>> --pancake
>> _______________________________________________
>> radare mailing list
>> [email protected]
>> http://lists.nopcode.org/listinfo.cgi/radare-nopcode.org
>>
> _______________________________________________
> radare mailing list
> [email protected]
> http://lists.nopcode.org/listinfo.cgi/radare-nopcode.org
>
_______________________________________________
radare mailing list
[email protected]
http://lists.nopcode.org/listinfo.cgi/radare-nopcode.org

Reply via email to