Solitamente uso etags unito ad Emacs per sfogliare il codice sorgente di progetti anche di grosse dimensioni. Tuttavia indicizzando la code base di FreeBSD mi sono trovato degli strani errori di riferimento: di fatto Emacs saltava nel punto sbagliato portandomi da un tag all'altro apparentemente senza senso.
Ho poi scoperto, grazie all'aiuto sulla mailing list Emacs, che sbagliavo l'invocazione della generazione dei tag:

cd /usr/src && find . -name '*.[ch]' -print0 | xargs -0 etags

questo comando sfrutta la capacità di xargs di lanciare piu' job in parallelo, e quindi ci si trovava ad avere dei processi etags concorrenti fra loro che sovrascrivevano le modifiche in modo conflittuale.
Siccome etags consente di leggere direttamente da standard input i file da indicizzare, il seguente comando risulta piu' lungo ma accurato nei risultati:

cd /usr/src && find . -name '*.[ch]' | etags -

The article etags su progetti grandi has been posted by Luca Ferrari on September 3, 2013