Code Monkey home page Code Monkey logo

jrfonseca's People

Contributors

googlecodeexporter avatar

Watchers

 avatar

jrfonseca's Issues

assertionerror on gprof output

hiya, great program! it has been very useful to me in testing the in- and
output of shedskin, a python-to-c++ compiler I've been working on..
(http://shed-skin.blogspot.com)

I sometimes get an assertionerror on line 62, for example for the attached
gprof. but everything seems to work fine after commenting out this line. if
gprof produces invalid output, maybe a warning would be better here..?

Ubuntu 8.10
gcc (Ubuntu 4.3.2-1ubuntu12) 4.3.2
Linux akemi 2.6.27-11-generic #1 SMP Thu Jan 29 19:24:39 UTC 2009 i686
GNU/Linux

Original issue reported on code.google.com by [email protected] on 29 Mar 2009 at 4:40

Attachments:

Hang of gprof2dot.py on callgrind output

It seems that it hangs on some callgrind inputs for me. I have to files
named callgrind.out.14542 (515 bytes) and callgrind.out.14542.1 (1.3
Mbytes) and launch it with ./gprof2dot.py -f callgrind -o out.dot
./callgrind.out.14542 (see attachment).
It works about 20 minutes using CPU on 100% before I killed it. Strace
output looks like:

read(3, "", 4096)                       = 0
read(3, "", 4096)                       = 0
read(3, "", 4096)                       = 0
... (and so on)


Original issue reported on code.google.com by [email protected] on 16 May 2010 at 2:06

Attachments:

Feature patch: open OpenFST transducer files directly

This is a little patch I wrote which allows xdot.py to open OpenFST
finite-state transducer files directly instead of always having to pipe the
output of fstdraw to it.  I've found it to be very convenient so I'm
passing it along though I don't know if this functionality actually belongs
in xdot...

Original issue reported on code.google.com by [email protected] on 24 Mar 2010 at 8:18

Attachments:

Please upload xdot to the Python Package Index

I'd like to be able to install xdot with easy_install, as well as use
setuptools dependency information to make it required for apps wanting to
embed xdot.

Please create a setup.py and upload xdot to PyPI.


Original issue reported on code.google.com by [email protected] on 4 Jul 2009 at 10:48

Requesting release tarballs for gprof2dot

Hello!

I have packaged revision of 9c41dcfc9906 for Gentoo GNU/Linux.  As fetching 
from Mercurial directly is not without problems [1] I would like to ask you to 
start making releases for gprof2dot (including debug.py).  I could do so myself 
but having that upstream is much cleaner in my eyes.

If you're short on time a non-tarbomb [2] tarball containing gprof2dot.py only 
would be the minimum that makes me happy.

Thanks in advance!  Best, Sebastian


[1] https://bugs.gentoo.org/show_bug.cgi?id=337088
[2] http://en.wikipedia.org/wiki/Tar_%28file_format%29#Tarbomb

Original issue reported on code.google.com by [email protected] on 14 Sep 2010 at 8:59

[xdot] Parse into an intermediate dict/array structure before rendering.

I'm using http://raphaeljs.com/ to render digraphs to svg/vml and needed an
xdot parser for parsing xdot into a JSON structure.
The first one I tried was dot_parser.py which uses pyparsing and was very slow.
Then I tried yours and found it to be impressive fast even for large graphs.
But your cairo drawing operations are hardwired to the parser so I had to
hack in some changes to construct a dict/array structure which I feed
through minjson.
I basically replaced XDotAttrParser with some regular expressions to get
polygon points for the edges and arrow heads from attrs.
To get rid of the gtk dependance I resolve the color names with a dict.
This is all very hackish at the moment but is ok for my project.
You can see a very early proof of concept at:
http://atomar.de/graphael/test01.php

Maybe you can separate the parsing from the drawing in a future version so
xdot.py can also be used as a xdot parser library? :)

best regards

Thomas

Original issue reported on code.google.com by [email protected] on 29 Mar 2009 at 7:43

Enhancement: allow more than a single input file

Hello, thank you for the script: very nice and useful.

I am profiling a web application, so most of the time is spent into a
select() waiting for the request to arrive. I patched my publisher to
profile only the time spent in the request handling, but each request
generates a different file, so i needed gprof2dot to parse many profile
data files at once.

I patched gprof2dot to accept many pstats files as input (no changes for
other profile formats). The pstat.Stats already accepts many input files,
so the command line parser has been changed to feed it with all the input
provided. The call overwrite doesn't issue a warning anymore but is
aggregates the events.

The patch is attached.

Cheers,

-- Daniele

Original issue reported on code.google.com by [email protected] on 18 Dec 2007 at 11:58

Attachments:

Calculation mistake on edges

Hey! Jose, 

Attached the gprof output. 

The outgoing edges of main don't seem right here. They should be <42.86/2 =
21.43> in my opinion.

Thanks,
Manav



Original issue reported on code.google.com by manavkataria on 20 Dec 2007 at 12:25

Attachments:

gprof2dot.py fails with KeyError exception

What steps will reproduce the problem?

1. profile "x11perf -aa10text" using oprofile
2. run "opreport -cgf /usr/bin/Xorg -p
/lib/modules/2.6.24-16-generic/extra/  > profile"
3. run "gprof2dot.py -f oprofile ./profile"

What is the expected output? What do you see instead?
gprof2dot.py fails with the following message:

Traceback (most recent call last):
  File "./gprof2dot.py", line 1345, in <module>
    Main().main()
  File "./gprof2dot.py", line 1268, in main
    self.profile = parser.parse()
  File "./gprof2dot.py", line 830, in parse
    call = caller.calls[_function.id]
KeyError: ':vmlinux-debug-2.6.24-16-generic:signal_32.c:651:do_notify_resume'

What version of the product are you using? On what operating system?

gprof2dot.py was fetched from svn on sat 04/12/08 (v0.4)
oprofile v0.9.3
on ubuntu hardy

Please provide any additional information below.
The corresponding profile file is available if needed.

Original issue reported on code.google.com by [email protected] on 12 Apr 2008 at 7:30

[xdot] highlight node's connected records on mouse over

Let's have a graph:
{
A -> B,
A -> C,
B -> C,
B -> D
}

So it would be nice of Xdot to highlight B and C if I put my mouse over A;
highlight B if I put my mouse over D, and so on.
Of course, with the edges and edges' labels.

This would help understanding complex graphs with a lot of non-straight and
overlapping edges.

Thank you beforehand.

Original issue reported on code.google.com by [email protected] on 12 Nov 2008 at 1:28

[Gprof2Dot] Unexepected end of line

Hi,

I tried the latest revision of Gprof2Dot (r30) on MacOSX 10.3.9 and I have
the message "error: unexpected end of file"

I attached the output of gprof. You could see that the structure is
different than the example data in the Linux Gazette article.

I tried to adapt the gprof ouptut to be like the example data in the Linux
Gazette article but i have the same eror messsage.

Note than this gprof output works with cgprof and google-gprof2dot.

Regards,

Arnaud

Original issue reported on code.google.com by arnaud.barre on 1 Apr 2007 at 5:34

Attachments:

[xdot] need 'URL-click' event for 'record-shape' fields

We need to intercept the event where you click on an individual 'record-shape' 
field. Right now the URL can only be attached to 'node-level', not 
'record-level'. Below is an example of record-shape in dot:

http://www.graphviz.org/Gallery/directed/datastruct.html

If we could have this feature that would be awesome.
Thanks.

Original issue reported on code.google.com by [email protected] on 10 Dec 2010 at 7:50

[drmingw] Patch to add ability to set the Report File location in exchndl.dll

exchndl.dll currently will produces a `modulename.RPT` crash report file in the 
same directory as the executable that launched the process.

This is problematic on Windows Vista / 7 due to the new permissions model for 
installed applications (user processes are not allowed to write to Program 
Files, etc.).

The attached patch adds a new function to exchndl.c that can be used to set the 
target location for the report file.

Here is an example of how it can be used:

HMODULE hmod;
if ((hmod = LoadLibraryW(L"exchndl.dll"))) {
    FARPROC proc;
    char debug_dir[MAX_PATH];
    printf("Loaded exchndl.dll\n");
    proc = GetProcAddress(hmod, "SetLogFile");
    if (proc) {
        if (GetTempPathA(sizeof(debug_dir) * sizeof(char), debug_dir) != 0) {
            strcat(debug_dir, "crash.RPT");
            printf(" Setting exchndl.dll LogFile to %s\n",
                debug_dir);
            (proc)(debug_dir);
        }
    }
}

Original issue reported on code.google.com by [email protected] on 28 Aug 2010 at 1:30

Attachments:

Automatically reload open while when changed

Hello José,

Thanks for the excellent xdot.py script, just what I was looking for.

I've hacked in some code to automatically reload the open file whenever
its modification timestamp changes, attached is a patch against
http://jrfonseca.googlecode.com/svn/trunk/xdot@272.

I considered using the pyinotify module [1] for more efficient
monitoring of the file, but as it's non-standard decided against it.

I've also not added any options to toggle this new behaviour.

Regards,
Robert

[1] http://pyinotify.sourceforge.net/

Original issue reported on code.google.com by [email protected] on 6 Aug 2009 at 6:34

Attachments:

square_distance -> distance

I'm reviewing your code now and have some ideas how to improve it.

I think that square_distance() should be transformed and renamed to just
distance() using math.sqrt() function before returning it's value.

Unless that, it has some wacky meaning :)

Also don't forget to modify places like:
if square_distance(x, y, *self.points[0]) <= self.RADIUS*self.RADIUS
to just
if distance(x, y, *self.points[0]) <= self.RADIUS

Original issue reported on code.google.com by [email protected] on 17 Jun 2009 at 6:21

gprof2dot.py fails with KeyError exception

What steps will reproduce the problem?

1. profile "x11perf -aa10text" using oprofile
2. run "opreport -cgf /usr/bin/Xorg -p
/lib/modules/2.6.24-16-generic/extra/  > profile"
3. run "gprof2dot.py -f oprofile ./profile"

What is the expected output? What do you see instead?
gprof2dot.py fails with the following message:

Traceback (most recent call last):
  File "./gprof2dot.py", line 1345, in <module>
    Main().main()
  File "./gprof2dot.py", line 1268, in main
    self.profile = parser.parse()
  File "./gprof2dot.py", line 830, in parse
    call = caller.calls[_function.id]
KeyError: ':vmlinux-debug-2.6.24-16-generic:signal_32.c:651:do_notify_resume'

What version of the product are you using? On what operating system?

gprof2dot.py was fetched from svn on sat 04/12/08 (v0.4)
oprofile v0.9.3
on ubuntu hardy

Please provide any additional information below.

I have attached the gzipped profile file.

Original issue reported on code.google.com by [email protected] on 12 Apr 2008 at 7:25

Attachments:

Parsing oprofile: sre_constants.error: redefinition of group name 'samples' as group 3; was group 1

What steps will reproduce the problem?
1. opreport -cgf | ./gprof2dot.py -f oprofile 

What is the expected output? What do you see instead?
I get the following traceback: 

  File "./gprof2dot.py", line 2069, in <module>
    Main().main()
  File "./gprof2dot.py", line 1994, in main
    self.profile = parser.parse()
  File "./gprof2dot.py", line 1067, in parse
    self.parse_header()
  File "./gprof2dot.py", line 1113, in parse_header
    self.entry_re = re.compile(entry_re)
  File "/usr/lib/python2.6/re.py", line 190, in compile
    return _compile(pattern, flags)
  File "/usr/lib/python2.6/re.py", line 245, in _compile
    raise error, v # invalid expression
sre_constants.error: redefinition of group name 'samples' as group 3; was
group 1

What version of the product are you using? On what operating system?

Updated to revision 296,
Python 2.6.4 on Ubuntu Karmic
oprofile 0.9.4+cvs20090629-2.1ubuntu2 


Original issue reported on code.google.com by [email protected] on 16 Dec 2009 at 4:18

Attachments:

Add a "reload" button in the GUI

When manually editing DOT files during learning of the DOT language it
would be nice to simply press a "reload"/"refresh" button to see changes.


Original issue reported on code.google.com by [email protected] on 14 Aug 2009 at 2:42

ZeroDivisionError: float division; line 306; call[TOTAL_TIME_RATIO] = call[TOTAL_TIME]/self[TOTAL_TIME]

Hi Jose!

Thanks for the script. I find it really neat! 

I tried familiarizing myself with your script using a simple program with 4
funtions. It worked like a charm! But when I used it on one of my project
files it resulted in a ZeroDivisionError. This is the first time I am
profiling so I may have missed something here. 

Here is the output: 
----------------------------------------------------------------------
kataria@ <snip> $ gprof ./proxy_test  | gprof2dot.py
Traceback (most recent call last):
  File "/home/kataria/bin/gprof2dot.py", line 1321, in ?
    Main().main()
  File "/home/kataria/bin/gprof2dot.py", line 1251, in main
    self.write_graph()
  File "/home/kataria/bin/gprof2dot.py", line 1311, in write_graph
    profile.estimate()
  File "/home/kataria/bin/gprof2dot.py", line 306, in estimate
    call[TOTAL_TIME_RATIO] = call[TOTAL_TIME]/self[TOTAL_TIME]
ZeroDivisionError: float division
----------------------------------------------------------------------

On a quick review of the script I thought you bypass the operation in case
of an exception. But it doesn't behave so. I added the following if
condition, but not much luck. 
----------------------------------------------------------------------
    304                     try:
    305                         if self[TOTAL_TIME] != 0:
    306                             call[TOTAL_TIME_RATIO] =
call[TOTAL_TIME]/self[TOTAL_TIME]
    307                     except UndefinedEvent:
    308                         pass
----------------------------------------------------------------------

Here is the output with the above change: 
----------------------------------------------------------------------
kataria@<snip> $ gprof | gprof2dot.py
digraph {
        graph [fontname=Arial, fontsize=10];
        node [fontcolor=white, fontname=Arial, style=filled, fontsize=10,
shape=box];
        edge [fontname=Arial, fontsize=10];
}
kataria@<snip> $ 
----------------------------------------------------------------------


System Config: 
----------------------------------------------------------------------
kataria@<snip> $ uname -a
Linux <snip> 2.6.15-gentoo-r5 #1 SMP Tue Jun 27 01:50:09 IST 2006 i686
Intel(R) Pentium(R) 4 CPU 3.40GHz GenuineIntel GNU/Linux

/usr/bin/env python -V
Python 2.4.2

#!/usr/bin/env python
"""Generate a dot graph from the output of several profilers."""
<snip>
__version__ = "0.4"
----------------------------------------------------------------------

I would be grateful if you could help me identify/fix this issue soon. Let
me know if you need any more information.

Thanks,
Manav Kataria

Original issue reported on code.google.com by manavkataria on 19 Dec 2007 at 2:57

DrMingw source download is gone

What steps will reproduce the problem?
1. access the downloads page: http://code.google.com/p/jrfonseca/downloads/list
2. mercurial repo is empty https://jrfonseca.googlecode.com/hg/


Original issue reported on code.google.com by [email protected] on 21 Dec 2009 at 7:13

[xdot] Adding URL support for edges

The Nodes have the attribute URL which allows for catching the 'click' signal 
while embedding the widget and doing awesome things. However, the edges do not 
have this attribute. This patch should correct the issue.

PS: The indentation might be a little off.

Original issue reported on code.google.com by musically.ut on 20 Nov 2010 at 4:53

Attachments:

[xdot] 100% CPU Usage when "zooming too much"

One of the users of the w3af, a software where xdot is used, found a bug
where xdot consumes 100% of CPU.

What steps will reproduce the problem?
1. Create a python script with the example given in the xdot site
2. python example.py
3. Locate the mouse pointer in the middle of the little triangle of the
arrow. The arrow turns red.
4. Start zooming in with the mouse scroll/page-up/page-down control
5. Keep zooming in, aiming to the center of the arrow triangle
6. After zooming for some time, the screen turns pink, then red, then
black. Keep zooming in.
7. Execute "top" in your console, and you'll see how xdot is consuming 100%
CPU.

What version of the product are you using? On what operating system?
Latest version of xdot.
Ubuntu, latest version.

Please provide any additional information below.
A possible fix is to limit the amount of zoom that a user can make.

Original issue reported on code.google.com by [email protected] on 21 Jan 2009 at 7:43

Quit key binding

What steps will reproduce the problem?
1. Try to quit using the keyboard, whether the modern Ctrl+Q or Ctrl+W (why
can't they make up their mind) or the "legacy" Q.
2. Observe xdot staying on the screen.
3. Profit!

What is the expected output? What do you see instead?

The lack of output was more what I expected.  I see xdot instead.

What version of the product are you using? On what operating system?

__version__ = "0.4".  Gentoo.

Please provide any additional information below.

--- xdot.py 2009-12-31 04:09:55.000000000 -0500
+++ xdot-quit.py    2009-12-31 04:10:05.000000000 -0500
@@ -1589,6 +1589,9 @@
         if event.keyval == gtk.keysyms.r:
             self.reload()
             return True
+        if event.keyval == gtk.keysyms.q:
+       gtk.main_quit()
+       return True
         return False

     def get_drag_action(self, event):

I figure you'll know if that's the correct way to exit.  The window manager
quit signal binding implies it might be, and it does work for me.

I'm too lazy to figure out how to do control keys when I prefer plain q
anyway, but you might know more easily.

P.S. xdot makes graphviz so much more usable!  I've needed this for years!

Original issue reported on code.google.com by [email protected] on 31 Dec 2009 at 9:22

Enhancement: Skew colorization curve to show more/less detail

I've created a modified version of gprof2dot.py on my local machine that
offers a new command-line option for a 'skew' value.  This value bends the
colorization curve allowing exponential curves in addition to the simple
linear interpolation currently offered.  This can offer an enhanced view of
the profile of a piece of code by providing a wider variety of color at
either the low or high end of the time scale.  

I've attatched a diff file showing the modifications I made.  There is a
second change in there that shows package names in addition to module names
for function labels (to help when working in a large project with tons of
modules, many of which have similar names.  It's probably not a good piece
of code for general consumption, and my apologies for including it.  But
perhaps it could lead to a better implementation of the same idea down the
road somewhere.

Thanks for the great product.

Cris Ewing
[email protected]

Original issue reported on code.google.com by [email protected] on 19 Nov 2009 at 1:51

Attachments:

Missing contact address

Hi Jose,

Would like to include xdot in a project of mine (also GPL) and felt like
dropping you a mail to get your blessing. However I can not find any
contact address either on the site, in the code or on your blog :S

Please drop me a line at [email protected] so I know where to send patches if
any.

Regards,

Jaap

Original issue reported on code.google.com by [email protected] on 25 Nov 2008 at 1:23

[patch] xdot explodes for some graphs

It seems that dot outputs floats for 'xmin, ymin, xmax, ymax' of some
graphs, which makes xdot.py fail parsing those values and die with
ValueError exception.

I attach graph which causes this behaviour and trivial patch to fix it.

Cheers!

Original issue reported on code.google.com by [email protected] on 13 Jun 2009 at 9:17

Attachments:

xdot fails on [fillcolor="0,0,1",style=filled]

"xdot.py small.dot", where small.dot contains

  digraph { Fail[fillcolor="0,0,1",style=filled]; }

fails with a ValueError:

Traceback (most recent call last):
  File "/tmp/xdot.py", line 830, in <module>
    main()
  File "/tmp/xdot.py", line 824, in main
    win.set_dotcode(fp.read())
  File "/tmp/xdot.py", line 804, in set_dotcode
    self.widget.set_dotcode(dotcode)
  File "/tmp/xdot.py", line 569, in set_dotcode
    self.set_xdotcode(xdotcode)
  File "/tmp/xdot.py", line 574, in set_xdotcode
    self.graph = parser.parse()
  File "/tmp/xdot.py", line 490, in parse
    shapes.extend(parser.parse())
  File "/tmp/xdot.py", line 414, in parse
    pen.fillcolor = s.read_color()
  File "/tmp/xdot.py", line 393, in read_color
    h, s, v = map(float, c[1:].split(","))
ValueError: empty string for float()

Graphviz's dot accepts that file with no problems.

Original issue reported on code.google.com by [email protected] on 9 Jun 2008 at 11:03

Too small font size is broken

Hello,

I'm developing a new project - http://code.google.com/p/xdebugtoolkit/ - 
and would like to use your xdot module for visualization.

What steps will reproduce the problem?
1. Open the attached .dot file with xdot 0.4.
2. At the very start you see a mess like there are a lot of overlapping 
labels of 10..14pt font size instead of very-very small font size used. 
Check the attached bug.png image.
3. If I zoom in 3 times or maximize the xdot window, the font size is 
normalized. But, as you can see from the bug2.png, labels' positions are 
skewed. I'm almost sure that this is because of 

What is the expected output? What do you see instead?
An expected output is very-very small font size. And 

What version of the product are you using? On what operating system?
It's windows xp sp3, stackless python 2.5.2, graphviz dot 2.20.3, xdot 0.4 
(svn r229)

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 2 Nov 2008 at 8:21

Attachments:

[drmingw] Patch to add OS Version and File Version information to the Report File generated by exchndl.dll

The attached patch adds the following features to the crash report files 
generated by exchndl.dll

 * Adds a line to the crash report file header containing information about the OS
 * For any modules in the stacktrace that contain VersionInfo, an additional line is printed out containing that information.

(sorry this is being filed as a defect, I can't see a way to submit it as 
anything else)

Original issue reported on code.google.com by [email protected] on 28 Aug 2010 at 3:24

Attachments:

[drmingw] Dwarf2 debugging symbols

The new MinGW GCC 4.5.0 uses Dwarf2 debugging symbols as default, and it looks 
like Dr. MinGW can not read them.

Is there a plan to support the Dwarf2 debugging symbols in Dr. MinGW?

- Regards
Franz Schnyder   



Original issue reported on code.google.com by [email protected] on 11 Aug 2010 at 8:29

incomplete parsing in gprof2dot.py

What steps will reproduce the problem?
1. opreport -cf | python gprof2dot.py -f oprofile

What is the expected output? What do you see instead?

I except it to work, instead it says:

Traceback (most recent call last):
  File "gprof2dot.py", line 1328, in <module>
    Main().main()
  File "gprof2dot.py", line 1251, in main
    self.profile = parser.parse()
  File "gprof2dot.py", line 781, in parse
    self.parse_entry()
  File "gprof2dot.py", line 834, in parse_entry
    function = self.parse_subentry()
  File "gprof2dot.py", line 867, in parse_subentry
    filename, lineno = source.split(':')
ValueError: need more than 1 value to unpack

What version of the product are you using? On what operating system?

Latest, as of today. Fedora 8.

Please provide any additional information below.

I can not use "opreport -cgf" because the -g segfaults 
opreport. "opreport -cf" does not seem to output data in the format that 
gprof2dot.py would like.

Original issue reported on code.google.com by [email protected] on 1 Apr 2008 at 3:19

Feature request (XDot): Print errors returned by dot.

If dot produces a graph without failing (if p.returncode == 0), then the 
warnings such as:

...
Error: lost node_1 node_2 edge
Error: lost node_5 node_3 edge
...

are lost.

Printing the error to stderr (if not a dialog) will be helpful:

        xdotcode, error = p.communicate(dotcode)
    if error:
        print >> sys.stderr, 'Message returned by ' + self.filter + ':\n'  + error


~
musically_ut

PS: For the curious, the dropping edge behavior seems unique to:
dot: http://www.graphviz.org/bugs/b711.html


Original issue reported on code.google.com by musically.ut on 24 Nov 2010 at 1:59

motion-notify-event only fires once

What steps will reproduce the problem?
1. Add a print statement to the motion-notify-event handler
2. Move the mouse around the canvas

What is the expected output? What do you see instead?
I expect to see the statement printed every time the mouse moves, but
instead, it only prints once after each mouse press or release, and once
after moving the cursor over the canvas when it was over something else
(say the toolbar.)

What version of the product are you using? On what operating system?
xdot: Latest SVN version (0.4)
OS: Red Hat Enterprise Linux 5
Trial 1: all RHEL5 packages: Python 2.5, pygtk 2.10, pycairo 1.2.0,
pygobject 2.12
Trial 2: custom compiled: Python 2.6, pygtk 2.10, pycairo 1.2.2, pygobject 2.16

Please provide any additional information below.
The effect of this is that dragging does not work.  When I drag, the canvas
moves once, after about a 1/4 second delay.  Then, I have to release the
mouse and drag again to move it again slightly.  This is very annoying. 
However, this only happens to my RHEL5 machine at work.  When I try this on
my Ubuntu machine at home, everything is fine.

I also tried the pygtk-demo, hypertext.  If I insert a print statement on
the motion-notify-event handler there, it prints every time I move the
mouse, as expected.  I have no idea how to fix this.

Original issue reported on code.google.com by lodatom on 18 Sep 2009 at 10:43

[xdot] show part of call graph

I would like to have a feature showing part of a very complex call graph system.

For example, the complete call graph is
{
a->b
b->c
b->d
d->g
c->e
c->f
}
I would like to have a feature showing all the related part to node c, that is
{
a->b
b->c
c->e
c->f
}

but discard 
{
b->d
d->g
}

For a program with thousands of function, this feature will make life much 
easier. Thanks.


Original issue reported on code.google.com by [email protected] on 19 Jun 2010 at 2:47

hg clone fails

What steps will reproduce the problem?
1. hg clone https://jrfonseca.googlecode.com/hg/ jrfonseca

What is the expected output? What do you see instead?

Expected to see a source tree.


Please provide any additional information below.

It looks like there's no source being version controlled.  Following the 
steps from the Source tab don't work, and trying to browse shows an empty 
repo.

Original issue reported on code.google.com by [email protected] on 1 Mar 2010 at 10:44

Parsing takes A LOT of time

First of all, I want to thank you for creating such a cool library =) I
have been using it for my open source project w3af [0] and other than the
bug that I'm reporting now, I'm very pleased with it.

The problem description is easy: the xdot format parsing takes A LOT of
time! The steps I'm using to reproduce this issue are:

0) get the latest version of w3af from the svn; install dependencies.
1) ./w3af_gui
2) Click on "Fuzzy Request"
3) Change $xrange(10)$ with $xrange(50)$ ; and select some random host as
the target (http://xxxx/)
4) When all the requests were sent, click on "Cluster Responses".
5) The window will appear after some seconds

If you look in the console, you'll see something like this:

Sun Oct 12 14:30:01 2008
Sun Oct 12 14:30:09 2008

Which is the result of this small modification to the dot_parser.py file:

def parse_dot_data(data):
    import time
    print time.ctime()
    try:
        data = data.replace('\\\n', '')
        graphparser = graph_definition()
        if pyparsing_version >= '1.2':
            graphparser.parseWithTabs()
        tokens = graphparser.parseString(data)
        graph = tokens.graph
        print time.ctime()
        return graph

As you can see, it takes 8 seconds to parse a 50 node graph! This is not
good :(

If you want to reproduce this bug without installing w3af, please see the
attached file, which contains the value of the "data" parameter that is
sent to "def parse_dot_data(data):".

Let me know if I can help fix this bug!

[0] http://w3af.sf.net/

Original issue reported on code.google.com by [email protected] on 12 Oct 2008 at 5:41

Attachments:

gprof2dot fails in parsing gprof output

What steps will reproduce the problem?

 gprof ./limitd | gprof2dot.py | dot -Tpng -o output2.png
Traceback (most recent call last):
  File "/home/harri/bin/gprof2dot.py", line 2192, in <module>
    Main().main()
  File "/home/harri/bin/gprof2dot.py", line 2117, in main
    self.profile = parser.parse()
  File "/home/harri/bin/gprof2dot.py", line 1005, in parse
    cycles[entry.cycle].add_function(function)
KeyError: 1


What version of the product are you using? On what operating system?
gprof2dot 1.0 (from svn 2009-11-24)
GNU gprof (GNU Binutils for Ubuntu) 2.19.1
Ubuntu 9.04 64 bit.
Using g++-4.2 


Please provide any additional information below.

Note that it did not fail for the first try, but running my app longer it
barfed.

Original issue reported on code.google.com by [email protected] on 24 Nov 2009 at 4:40

[xdot] Graph.get_jump() accuracy improvement proposition

Currently the method finds the first edge that fits into some radius around
the mouse pointer and often selects an edge that is farther than others -
just because it was found first.

Another more useful approach would be to find the closest edge. I can
provide some demo code for this if you like.

Original issue reported on code.google.com by [email protected] on 17 Jun 2009 at 6:51

brewer color scheme is not supported

Graphviz uses brewer color scheme in addition to X11 color scheme. When
looking up color names, Xdot only checks X11 color scheme and hence cannot
render dot files within brewer color names. The attached patch adds brewer
color scheme support in xdot.

Original issue reported on code.google.com by [email protected] on 26 Aug 2009 at 12:57

Attachments:

Add xdot --no-filter

Sometimes you already got a graph laid out in a particular way, and would like 
to see how that graph looks without filtering it through a different layout 
engine.

This patch adds a --no-filter option (short: -n) that lets me do, e.g.

  ccomps -x < x.dot|dot|gvpack -g|neato -n2 -Txdot|xdot -n -


Original issue reported on code.google.com by [email protected] on 19 Dec 2010 at 5:46

Attachments:

[drmingw] Patch to add support for reading debug symbols from external files to exchndl.dll

Currently, exchndl will read only stabs debugging symbols directly from the 
relevant modules.

This patch adds the additional ability to read debug symbols from files that 
exist alongside the modules.  This makes it possible to generate useful crash 
reports from stripped binaries by reading the symbols from a unstripped copy of 
the binary.

If the module has version information embedded, a comparison is done to make 
sure that the corresponding "debug symbols" module has the same version 
information specified.

By default, it only looks for a "module.ext.dbgsym" file in the same directory 
as the module.

An alternate directory structure for looking up debug symbols can be specified 
by calling "SetDebugInfoDir" on the loaded exchndl.dll instance.  The 
DebugInfoDir is intended to be a parallel directory structure to the stripped 
application structure containing the corresponding ".dbgsym" files.

For Example:
...\Application\app.exe
...\Application\applib.dll
...\Application\plugins\plugin.dll

The DebugInfoDir looks like this:
...\Application\dbgsym-1.0.1.1\app.exe.dbgsym
...\Application\dbgsym-1.0.1.1\applib.dll.dbgsym
...\Application\dbgsym-1.0.1.1\plugins\plugin.dll.dbgsym

The following code sets up the DebugInfoDir:

if ((hmod = LoadLibraryW(L"exchndl.dll"))) {
    FARPROC proc;
    char debug_dir[MAX_PATH];
    proc = GetProcAddress(hmod, "SetDebugInfoDir");
    if (proc) {
        _snprintf(debug_dir, sizeof(debug_dir) / sizeof(char),
            "%s\\dbgsym-%s", app_install_dir,  VERSION);
        debug_dir[sizeof(debug_dir) / sizeof(char) - 1] = '\0';
        printf(" Setting exchndl.dll DebugInfoDir to %s\n",
            debug_dir);
        (proc)(debug_dir);
    }
}

In my use case, I distribute stripped modules and then have a separate zip file 
that can be later extracted to the DebugInfoDir location if needed to help get 
a useful crash report.

This patch contains (and is a superset of) the patch in id 39.

Original issue reported on code.google.com by [email protected] on 28 Aug 2010 at 3:59

Attachments:

assert outevent not in call

I've added gprof-style callgraph output to xsltproc (xslt processor). The
report looks good and for smaller reports, gprof2dot works fine. For longer
(real life callgraphs) it abouts with the above assertion. 

Now this can be also a deficiency in my callgraphs. Do you have any idea?

Traceback (most recent call last):
  File "/home/ensonic/bin/gprof2dot.py", line 2515, in <module>
    Main().main()
  File "/home/ensonic/bin/gprof2dot.py", line 2440, in main
    self.profile = parser.parse()
  File "/home/ensonic/bin/gprof2dot.py", line 1029, in parse
    profile.integrate(TOTAL_TIME, TIME)
  File "/home/ensonic/bin/gprof2dot.py", line 354, in integrate
    self._integrate_function(function, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 373, in _integrate_call
    subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 373, in _integrate_call
    subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 373, in _integrate_call
    subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 373, in _integrate_call
    subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 373, in _integrate_call
    subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 373, in _integrate_call
    subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 373, in _integrate_call
    subtotal = call.ratio *self._integrate_function(callee, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 365, in _integrate_function
    total += self._integrate_call(call, outevent, inevent)
  File "/home/ensonic/bin/gprof2dot.py", line 370, in _integrate_call
    assert outevent not in call
AssertionError

Original issue reported on code.google.com by [email protected] on 8 Mar 2010 at 12:00

[xdot] Add scroll bars

It would be nice to have scroll bars in addition to the grab and drag 
navigation feature.

Original issue reported on code.google.com by [email protected] on 19 Oct 2010 at 6:44

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.