Wednesday, May 4, 2011

External tool for building cross-reference table from cscope/ctags (was Re: call graph functionality)

After the discussion in this thread, I spawned off a new project: ccglue. ccglue is a native application that can build cross-reference tables from cscope (and ctags, in future versions). The generated cross-reference can be traced directly from disk by the CCTree plugin  without any additional load time.

ccglue is available in posix/win32 flavors and cross-reference building times are in the order of tens of seconds even for extremely large cscope database sizes.  ccglue can be run in the background or as a shell command similar to updating ctags and cscope database. ccglue should make it more practical to use large-sized projects with CCTree.

Project links
-----------------------
ccglue: http://sourceforge.net/projects/ccglue
CCTree: http://www.vim.org/scripts/script.php?script_id=2368



On Wed, Mar 30, 2011 at 9:58 PM, sinbad <sinbad.sinbad@gmail.com> wrote:
hi hari,

i really appreciate your effort on this front.
i guess the only reason the script is not
being used by many hardcore programmers
is it's lack of usability for huge projects.
as it is obvious that you are clearly working
on it to make it better. i would love to give
it a try, but the only reasonable way for it
to become useful is when it gets the capability
to run in background.

cheers


On Mar 30, 9:41 pm, "hari.rangara...@gmail.com"
> Version 1.21 of CCTree allows serialization of loaded cscope databases. So,
> you could run a vim process
> in the background sourcing the script which goes something like:
>
> load_my_cscope.vim:
> :CCTreeLoadDB cscope.out
> :CCTreeSaveXRefDb cctree.out
>
> $ vim -S load_my_cscope.vim
>
> Once it's done, you can load it in your current session with
> :CCTreeLoadXRefDb cctree.out
>
> The second load will take a few minutes usually. I'm currently testing a
> version that allows tracing from disk, requiring
> no load time (If you would like to try that out, let me know).
>
>
>
>
>
>
>
> On Wed, Mar 30, 2011 at 12:35 AM, sinbad <sinbad.sin...@gmail.com> wrote:
> > i was referring to CCTree Plugin in my OP. the problem with that
> > script is it can't be run
> > in background (as none of the vim scripts can), while it is building
> > the call tree,
> > vim will not be available for editing,  this is a big problem if the
> > source files are huge.
> > if vim has this capability in-built (like a pthread running in
> > background) then it will be of
> > useful. btw, i am not looking for any fancy graphical natured call
> > graphs. an ascii tree
> > like the one provided in CCTree will be enough.
>
> > On Mar 30, 12:07 pm, Sasha <sasha.h...@gmail.com> wrote:
> > > I guess you didn't like vim's cscope support (:help cscope) or the
> > > CCTree plugin (http://www.vim.org/scripts/script.php?script_id=2368).
>
> > > I assume you mean you want to generate vector/raster graphical
> > > representations of the call graph. Doing this efficiently and well
> > > realistically requires using a tool built for the purpose (e.g.
> > > codeviz, just for one example:
> >http://www.csn.ul.ie/~mel/projects/codeviz/)
>
> > > Why not find a tool which does the job as you like it, and then map
> > > keys to control that tool from vim?
>
> > > Sasha
>
> > > On Mar 30, 1:32 am, sinbad <sinbad.sin...@gmail.com> wrote:
>
> > > > hi,
>
> > > > i know many of the developers must be using vim to write
> > > > their c programs, but why there isn't an effort to add this
> > > > crucial functionality to vim. some vim scripts are available
> > > > to do exactly this, but they are not efficient and can't run
> > > > in parallel like figuring out function relationship in the
> > > > background.
>
> > > > thanks
>
> > --
> > You received this message from the "vim_use" maillist.
> > Do not top-post! Type your reply below the text you are replying to.
> > For more information, visithttp://www.vim.org/maillist.php

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: