Call graph tool?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Call graph tool?

hernanmd
Hi Thierry,

I know the Flow Message Browser since Squeak, but it doesn't provide a graph.
I would love to have integrated a graph view into the Browser so we can quickly determine importance of methods.

Cheers,

Hernán


2016-10-07 4:26 GMT-03:00 Thierry Goubier <[hidden email]>:
Hi Hernán,

why not use the message flow browser[1] with a scope restricted to a class?

Scoped browsing with implementors / senders search is what I do in your situation.

Regards,

Thierry

[1] https://pharoweekly.wordpress.com/2015/09/09/new-tool-flow-message-browser/


2016-10-05 17:27 GMT+02:00 Hernán Morales Durand <[hidden email]>:
Hi Tudor,

Maybe you have experimented this situation before: When you face a new class with many methods you want to understand the message flow, specially with those I call the "main()" classes, where there is mostly one or two methods which trigger execution of other "private" methods. My interest is then to quickly explore the call graph at the method level, at a single class scope.
Cheers,

Hernán




2016-10-05 7:24 GMT-03:00 Tudor Girba <[hidden email]>:
Hi,

Thanks for the report. I could reproduce the problem.

Could you detail your specific requirements? What nodes would you expect to see: Methods, Classes, Packages?

For example, we can have one method and show all transitive dependencies starting from that. Is this what you are looking for?

Cheers,
Doru


> On Sep 30, 2016, at 8:11 PM, Hernán Morales Durand <[hidden email]> wrote:
>
> Hi Tudor,
>
> Thank you for the suggestion, I want to visualize one of my projects. I tried to use RTDominanceTreeLayout from Moose with "Compression" package in Moose Panel, and found it is used in "All famixnamespaces" and "All famixpackages" (this one is giving a MessageNotUnderstood: FAMIXClass>>FAMIXPackage). I always get 2 namespaces so I couldn't check how close enough is RTDominanceTreeLayout from Moose.
> However, I checked the mailing list and found a script using RTDominanceTreeLayout so I would start from there.
>
> Cheers,
>
> Hernán
>
>
>
>
>
> 2016-09-30 6:37 GMT-03:00 Tudor Girba <[hidden email]>:
> Hi,
>
> The closest layout that you can use is RTDominanceTreeLayout.
>
> What kind of call graph do you want to visualize? From you Pharo code or something else?
>
> Cheers,
> Doru
>
>
> > On Sep 30, 2016, at 5:53 AM, Hernán Morales Durand <[hidden email]> wrote:
> >
> >
> > Any call graph generator out there?
> >
> > I mean something where you can actually see selector names in the graph (without hover) like these:
> >
> > http://phpcallgraph.sourceforge.net/
> > http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool
> >
> > Hernán
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.list.inf.unibe.ch/listinfo/moose-dev
>
> --
> www.tudorgirba.com
> www.feenk.com
>
> "Next time you see your life passing by, say 'hi' and get to know her."
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.list.inf.unibe.ch/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.list.inf.unibe.ch/listinfo/moose-dev

--
www.tudorgirba.com
www.feenk.com

"We can create beautiful models in a vacuum.
But, to get them effective we have to deal with the inconvenience of reality."

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Call graph tool?

Thierry Goubier
Hi Hernán,

Le 10/10/2016 à 23:37, Hernán Morales Durand a écrit :
> Hi Thierry,
>
> I know the Flow Message Browser since Squeak, but it doesn't provide a
> graph.
> I would love to have integrated a graph view into the Browser so we can
> quickly determine importance of methods.

Replacing whatever is used to navigate between classes and methods in
the browser with a graph that you can use to select methods?

Toggling between normal / hierarchy / call graph / whatever...

Depending on the way the target code is structured, it may be more or
less important for understanding.

Regards,

Thierry

> Cheers,
>
> Hernán
>
>
> 2016-10-07 4:26 GMT-03:00 Thierry Goubier <[hidden email]
> <mailto:[hidden email]>>:
>
>     Hi Hernán,
>
>     why not use the message flow browser[1] with a scope restricted to a
>     class?
>
>     Scoped browsing with implementors / senders search is what I do in
>     your situation.
>
>     Regards,
>
>     Thierry
>
>     [1]
>     https://pharoweekly.wordpress.com/2015/09/09/new-tool-flow-message-browser/
>     <https://pharoweekly.wordpress.com/2015/09/09/new-tool-flow-message-browser/>
>
>
>     2016-10-05 17:27 GMT+02:00 Hernán Morales Durand
>     <[hidden email] <mailto:[hidden email]>>:
>
>         Hi Tudor,
>
>         Maybe you have experimented this situation before: When you face
>         a new class with many methods you want to understand the message
>         flow, specially with those I call the "main()" classes, where
>         there is mostly one or two methods which trigger execution of
>         other "private" methods. My interest is then to quickly explore
>         the call graph at the method level, at a single class scope.
>         Cheers,
>
>         Hernán
>
>
>
>
>         2016-10-05 7:24 GMT-03:00 Tudor Girba <[hidden email]
>         <mailto:[hidden email]>>:
>
>             Hi,
>
>             Thanks for the report. I could reproduce the problem.
>
>             Could you detail your specific requirements? What nodes
>             would you expect to see: Methods, Classes, Packages?
>
>             For example, we can have one method and show all transitive
>             dependencies starting from that. Is this what you are
>             looking for?
>
>             Cheers,
>             Doru
>
>
>             > On Sep 30, 2016, at 8:11 PM, Hernán Morales Durand
>             <[hidden email] <mailto:[hidden email]>>
>             wrote:
>             >
>             > Hi Tudor,
>             >
>             > Thank you for the suggestion, I want to visualize one of
>             my projects. I tried to use RTDominanceTreeLayout from Moose
>             with "Compression" package in Moose Panel, and found it is
>             used in "All famixnamespaces" and "All famixpackages" (this
>             one is giving a MessageNotUnderstood:
>             FAMIXClass>>FAMIXPackage). I always get 2 namespaces so I
>             couldn't check how close enough is RTDominanceTreeLayout
>             from Moose.
>             > However, I checked the mailing list and found a script
>             using RTDominanceTreeLayout so I would start from there.
>             >
>             > Cheers,
>             >
>             > Hernán
>             >
>             >
>             >
>             >
>             >
>             > 2016-09-30 6:37 GMT-03:00 Tudor Girba
>             <[hidden email] <mailto:[hidden email]>>:
>             > Hi,
>             >
>             > The closest layout that you can use is RTDominanceTreeLayout.
>             >
>             > What kind of call graph do you want to visualize? From you
>             Pharo code or something else?
>             >
>             > Cheers,
>             > Doru
>             >
>             >
>             > > On Sep 30, 2016, at 5:53 AM, Hernán Morales Durand
>             <[hidden email] <mailto:[hidden email]>>
>             wrote:
>             > >
>             > >
>             > > Any call graph generator out there?
>             > >
>             > > I mean something where you can actually see selector
>             names in the graph (without hover) like these:
>             > >
>             > > http://phpcallgraph.sourceforge.net/
>             <http://phpcallgraph.sourceforge.net/>
>             > >
>             http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool
>             <http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool>
>             > >
>             > > Hernán
>             > >
>             > > _______________________________________________
>             > > Moose-dev mailing list
>             > > [hidden email]
>             <mailto:[hidden email]>
>             > > https://www.list.inf.unibe.ch/listinfo/moose-dev
>             <https://www.list.inf.unibe.ch/listinfo/moose-dev>
>             >
>             > --
>             > www.tudorgirba.com <http://www.tudorgirba.com>
>             > www.feenk.com <http://www.feenk.com>
>             >
>             > "Next time you see your life passing by, say 'hi' and get
>             to know her."
>             >
>             >
>             >
>             >
>             > _______________________________________________
>             > Moose-dev mailing list
>             > [hidden email]
>             <mailto:[hidden email]>
>             > https://www.list.inf.unibe.ch/listinfo/moose-dev
>             <https://www.list.inf.unibe.ch/listinfo/moose-dev>
>             >
>             > _______________________________________________
>             > Moose-dev mailing list
>             > [hidden email]
>             <mailto:[hidden email]>
>             > https://www.list.inf.unibe.ch/listinfo/moose-dev
>             <https://www.list.inf.unibe.ch/listinfo/moose-dev>
>
>             --
>             www.tudorgirba.com <http://www.tudorgirba.com>
>             www.feenk.com <http://www.feenk.com>
>
>             "We can create beautiful models in a vacuum.
>             But, to get them effective we have to deal with the
>             inconvenience of reality."
>
>             _______________________________________________
>             Moose-dev mailing list
>             [hidden email] <mailto:[hidden email]>
>             https://www.list.inf.unibe.ch/listinfo/moose-dev
>             <https://www.list.inf.unibe.ch/listinfo/moose-dev>
>
>
>
>         _______________________________________________
>         Moose-dev mailing list
>         [hidden email] <mailto:[hidden email]>
>         https://www.list.inf.unibe.ch/listinfo/moose-dev
>         <https://www.list.inf.unibe.ch/listinfo/moose-dev>
>
>
>
>     _______________________________________________
>     Moose-dev mailing list
>     [hidden email] <mailto:[hidden email]>
>     https://www.list.inf.unibe.ch/listinfo/moose-dev
>     <https://www.list.inf.unibe.ch/listinfo/moose-dev>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.list.inf.unibe.ch/listinfo/moose-dev
>

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Call graph tool?

hernanmd


2016-10-11 2:47 GMT-03:00 Thierry Goubier <[hidden email]>:
Hi Hernán,

Le 10/10/2016 à 23:37, Hernán Morales Durand a écrit :
Hi Thierry,

I know the Flow Message Browser since Squeak, but it doesn't provide a
graph.
I would love to have integrated a graph view into the Browser so we can
quickly determine importance of methods.

Replacing whatever is used to navigate between classes and methods in the browser with a graph that you can use to select methods?


No, nobody said replacing :). I was thinking more in adding a class menu item to open a Call Graph visualization.
 
Toggling between normal / hierarchy / call graph / whatever...

Depending on the way the target code is structured, it may be more or less important for understanding.


Yes, as long as we don't have metrics or better documentation (I mean quality doc) integrated **into** the Browser, we need more tools to quickly view interactions and help understanding.

Hernán


 
Regards,

Thierry

Cheers,

Hernán


2016-10-07 4:26 GMT-03:00 Thierry Goubier <[hidden email]
<mailto:[hidden email]>>:

    Hi Hernán,

    why not use the message flow browser[1] with a scope restricted to a
    class?

    Scoped browsing with implementors / senders search is what I do in
    your situation.

    Regards,

    Thierry

    [1]
    https://pharoweekly.wordpress.com/2015/09/09/new-tool-flow-message-browser/
    <https://pharoweekly.wordpress.com/2015/09/09/new-tool-flow-message-browser/>


    2016-10-05 17:27 GMT+02:00 Hernán Morales Durand
    <[hidden email] <mailto:[hidden email]>>:

        Hi Tudor,

        Maybe you have experimented this situation before: When you face
        a new class with many methods you want to understand the message
        flow, specially with those I call the "main()" classes, where
        there is mostly one or two methods which trigger execution of
        other "private" methods. My interest is then to quickly explore
        the call graph at the method level, at a single class scope.
        Cheers,

        Hernán




        2016-10-05 7:24 GMT-03:00 Tudor Girba <[hidden email]
        <mailto:[hidden email]>>:

            Hi,

            Thanks for the report. I could reproduce the problem.

            Could you detail your specific requirements? What nodes
            would you expect to see: Methods, Classes, Packages?

            For example, we can have one method and show all transitive
            dependencies starting from that. Is this what you are
            looking for?

            Cheers,
            Doru


            > On Sep 30, 2016, at 8:11 PM, Hernán Morales Durand
            <[hidden email] <mailto:[hidden email]>>
            wrote:
            >
            > Hi Tudor,
            >
            > Thank you for the suggestion, I want to visualize one of
            my projects. I tried to use RTDominanceTreeLayout from Moose
            with "Compression" package in Moose Panel, and found it is
            used in "All famixnamespaces" and "All famixpackages" (this
            one is giving a MessageNotUnderstood:
            FAMIXClass>>FAMIXPackage). I always get 2 namespaces so I
            couldn't check how close enough is RTDominanceTreeLayout
            from Moose.
            > However, I checked the mailing list and found a script
            using RTDominanceTreeLayout so I would start from there.
            >
            > Cheers,
            >
            > Hernán
            >
            >
            >
            >
            >
            > 2016-09-30 6:37 GMT-03:00 Tudor Girba
            <[hidden email] <mailto:[hidden email]>>:
            > Hi,
            >
            > The closest layout that you can use is RTDominanceTreeLayout.
            >
            > What kind of call graph do you want to visualize? From you
            Pharo code or something else?
            >
            > Cheers,
            > Doru
            >
            >
            > > On Sep 30, 2016, at 5:53 AM, Hernán Morales Durand
            <[hidden email] <mailto:[hidden email]>>
            wrote:
            > >
            > >
            > > Any call graph generator out there?
            > >
            > > I mean something where you can actually see selector
            names in the graph (without hover) like these:
            > >
            > > http://phpcallgraph.sourceforge.net/
            <http://phpcallgraph.sourceforge.net/>
            > >
            http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool
            <http://stackoverflow.com/questions/793685/c-sharp-call-graph-generation-tool>
            > >
            > > Hernán
            > >
            > > _______________________________________________
            > > Moose-dev mailing list
            > > [hidden email]
            <mailto:[hidden email]>
            > > https://www.list.inf.unibe.ch/listinfo/moose-dev
            <https://www.list.inf.unibe.ch/listinfo/moose-dev>
            >
            > --
            > www.tudorgirba.com <http://www.tudorgirba.com>
            > www.feenk.com <http://www.feenk.com>
            >
            > "Next time you see your life passing by, say 'hi' and get
            to know her."
            >
            >
            >
            >
            > _______________________________________________
            > Moose-dev mailing list
            > [hidden email]
            <mailto:[hidden email]>
            > https://www.list.inf.unibe.ch/listinfo/moose-dev
            <https://www.list.inf.unibe.ch/listinfo/moose-dev>
            >
            > _______________________________________________
            > Moose-dev mailing list
            > [hidden email]
            <mailto:[hidden email]>
            > https://www.list.inf.unibe.ch/listinfo/moose-dev
            <https://www.list.inf.unibe.ch/listinfo/moose-dev>

            --
            www.tudorgirba.com <http://www.tudorgirba.com>
            www.feenk.com <http://www.feenk.com>

            "We can create beautiful models in a vacuum.
            But, to get them effective we have to deal with the
            inconvenience of reality."

            _______________________________________________
            Moose-dev mailing list
            [hidden email] <mailto:[hidden email]>
            https://www.list.inf.unibe.ch/listinfo/moose-dev
            <https://www.list.inf.unibe.ch/listinfo/moose-dev>



        _______________________________________________
        Moose-dev mailing list
        [hidden email] <mailto:[hidden email]>
        https://www.list.inf.unibe.ch/listinfo/moose-dev
        <https://www.list.inf.unibe.ch/listinfo/moose-dev>



    _______________________________________________
    Moose-dev mailing list
    [hidden email] <mailto:[hidden email]>
    https://www.list.inf.unibe.ch/listinfo/moose-dev
    <https://www.list.inf.unibe.ch/listinfo/moose-dev>




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Call graph tool?

Thierry Goubier


2016-10-11 14:27 GMT+02:00 Hernán Morales Durand <[hidden email]>:


2016-10-11 2:47 GMT-03:00 Thierry Goubier <[hidden email]>:
Hi Hernán,

Le 10/10/2016 à 23:37, Hernán Morales Durand a écrit :
Hi Thierry,

I know the Flow Message Browser since Squeak, but it doesn't provide a
graph.
I would love to have integrated a graph view into the Browser so we can
quickly determine importance of methods.

Replacing whatever is used to navigate between classes and methods in the browser with a graph that you can use to select methods?


No, nobody said replacing :). I was thinking more in adding a class menu item to open a Call Graph visualization.

I wouldn't mind replacing if it means gaining more power ;)
 
 
Toggling between normal / hierarchy / call graph / whatever...

Depending on the way the target code is structured, it may be more or less important for understanding.


Yes, as long as we don't have metrics or better documentation (I mean quality doc) integrated **into** the Browser, we need more tools to quickly view interactions and help understanding.

We may never replace tools that let us explore the code. I'd take interactive tools over documentation any day, as long as those interactive tools do work properly...

Regards,

Thierry


 


Hernán

 



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.list.inf.unibe.ch/listinfo/moose-dev
12