Live data from Hacker News

GNU GLOBAL source code tagging system

gnu.org

11–20 of 21 posts

Re: GNU GLOBAL source code tagging system

#11
post #9

I use etags in Emacs to navigate our C source code, which is so much more effective than the brute force search I often see people use. I don't have as good a handle on our C++, C#, and Java, so I'll give this a try.

I listed several methods for navigating C/C++ source code here in my guide: http://tuhdo.github.io/c-ide.html

Hope it help.

Re: GNU GLOBAL source code tagging system

#12
post #2

For me, the most useful information was the "Comparison with Similar Tools" table (in the OpenGrok project wiki), which was linked-to from the GNU GLOBAL page: https://github.com/OpenGrok/OpenGrok/wiki/Comparison-with-Si... As a Vim user, the comparisons to Ctags and cscope were informative. And the list of supported languages is impressive! Awk, Dos batch, COBOL, C, C++, C#, Erlang, Fortran, Java, JavaScript, Lisp,…

Hmmm… JavaScript wasn't supported last time I tried GNU GLOBAL, two years ago. I'll have to check it out.

Re: GNU GLOBAL source code tagging system

#15
post #14

For C/C++ code that you can compile I highly recommend rtags. It uses clang (llvm) to figure out all the cross-refs so doesn't have false positives from fuzzy matching. rtags - https://github.com/Andersbakken/rtags vim plugin - https://github.com/lyuts/vim-rtags

Doesn't seem to run on Windows, though.

Re: GNU GLOBAL source code tagging system

#17
post #10
post #7

Earlier quoted context omitted.

Both cscope and GNU global are "just text search", but cscope's C parsing is fancier. Among other things, you can ask cscope 1. Where is symbol "foo" mentioned? 2. Where is function "foo" called? 3. What other functions does function "foo" call? GNU global can do #1, but not #2 or #3.

Well, it seems like GNU Global while can only do #1, but does it better: http://www.farseer.cn/config/2013/11/26/ctags-cscope-gtags/

Heh? That post says its show-me-where-foo-is-defined functionality is broken sometimes, but it doesn't show it (and presumably they never filed a bug upstream either). I compared the two at some point last year, and they did produce slightly different results, with cscope being slightly more correct about something, but I don't recall exactly; they were VERY similar.

Re: GNU GLOBAL source code tagging system

#18
post #17
post #10

Earlier quoted context omitted.

Well, it seems like GNU Global while can only do #1, but does it better: http://www.farseer.cn/config/2013/11/26/ctags-cscope-gtags/

Heh? That post says its show-me-where-foo-is-defined functionality is broken sometimes, but it doesn't show it (and presumably they never filed a bug upstream either). I compared the two at some point last year, and they did produce slightly different results, with cscope being slightly more correct about something, but I don't recall exactly; they were VERY similar.

But GNU Global is being maintained, while cscope was abandoned. With GNU Global, you can actually update your database without recreating your tag database again. This is very useful for editor integration when you finish editing a file and save it.

Re: GNU GLOBAL source code tagging system

#19
post #16

And the latest available version on the most recent ubuntu and debian releases is... 5.7.1 from 6 years ago!! https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574947 https://bugs.launchpad.net/ubuntu/+source/global/+bug/127502...

Wow. That explains dima55's comment above:

https://news.ycombinator.com/item?id=8617027

Re: GNU GLOBAL source code tagging system

#20
post #4
post #2

For me, the most useful information was the "Comparison with Similar Tools" table (in the OpenGrok project wiki), which was linked-to from the GNU GLOBAL page: https://github.com/OpenGrok/OpenGrok/wiki/Comparison-with-Si... As a Vim user, the comparisons to Ctags and cscope were informative. And the list of supported languages is impressive! Awk, Dos batch, COBOL, C, C++, C#, Erlang, Fortran, Java, JavaScript, Lisp,…

The fancy language support is provided by exuberant ctags, so look into that if that excites you. As for cscope, GNU global is very similar; it's a bit slower for some things and a bit faster for others. Global can only find references, not callers/callees like cscope can. And the Debian maintainer of GNU Global thinks that the GNU Global maintainer is an idiot, and a consequence of this is that on Debian and derived…

Try helm-gtags it supports callers/callees better than scope.
Post reply on HN