[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Tue, 5 Dec 2006 21:19:22 -0600
On Dec 5, 2006, at 7:32 PM, Hadron Quark wrote:
Perry Smith <address@hidden> writes:
On Dec 5, 2006, at 4:39 PM, Hadron Quark wrote:
Perry Smith <address@hidden> writes:
cscope. To make the db I use -q. To invoke it via emacs, I use -q
-d Do not update the cross-reference.
-q Enable fast symbol lookup via an inverted
Just for thread completeness, how do you add these options when
cscope from emacs? How are you accessing cscope from emacs? Which el
package do you use?
Well, its a long story. I created my own cscope.el back in 1990.
happy to share it
but it has lots of weird twisted gunk in it. I have the concept
"inherited buffer". Each
buffer has a buffer local variable that points back to its inherited
buffer. In this way,
different buffers can use different cscope's and not get confused
between them. At the
Can you expand on this? I dont understand.
I was working on debugging the entire OS. Once at Tandem, the other
at IBM. At the time,
it was not practical to have one cscope database for the entire OS.
So I had separate cscope
files for the particular areas I would be working in. So if I was
editing a group of files down the
path /a/b/c/d which had a cscope database in d, then all the files in
d would point back to the cscope
buffer using the database in d. At the same time, I might be editing
and looking at files down the
path /u/v/w/x which would have its own separate cscope db. All the
files in x would point back to
the cscope buffer using the db in x. I could look at various things
in separate files and do
symbol lookups, etc. There was also the problem of various build
versions of the OS. Again, I could
have separate db's in the various directories so foodog.h from build
1 would look at the cscope
db file from build 1 while foodog.h from build 2 would look at the
cscope db from build 2. This
is also where I had "inherited" buffer local variables. So if I did
a make in foodog.h of build 1, it
would use the proper commands for build level 1.
Did you try xcscope previously referenced? With auto database update
turned off, it works great.
I like what I have very much except that cscope does not actually
truly understand C++ so
it can not really find me all the references to a particular method
of a particular class.
time, there was a lot of other things that were inherited besides
the cscope information
(like build information and that sort of thing).
I also have a script called cscope-front (I've appended it to the
bottom). I doubt if it
will do you much good either except just as a thought of calling
cscope via a script
and then that script can add and subtract arguments based upon a
variables. This keeps the lisp code simpler -- I was more
scripts than lisp code at the time.
I create the cscope database via make. The makefile creates a
files called cscope.files,
(usually based upon various make variables), then it calls cscope as:
cscope -q -b
(The cscope I'm using defaults to looking in cscope.files for the
From emacs, I call cscope-front (using my cscope.el routines). As
can see, the script
has debug output to /tmp/doggy. Here are some sample lines from
/usr/local/bin/cscope -d -q -l -P /home/pedz/Eclipse/SATA/src -f
The last line is all the args I use to call cscope with.
Hopefully, something in here will be useful to you.
# First arg is the string to pass to setup, second arg is the
# directory where the cscope should behave from
p=$( echo $2 | sed -e 's%/$%%' )
/bin/pwd >> /tmp/doggy
echo "a='$a' p='$p'" >> /tmp/doggy
if [ -n "$a" ] ; then
source ~/.setup $a
# DFS permissions are weird and I can execute things even though the
# file system says I can not. So I only check to see if the file
# exists or not.
if [ -e cscope/bin/cscope ] ; then
elif [ -e ../cscope/bin/cscope ] ; then
elif [ -e ../../cscope/bin/cscope ] ; then
echo $CSCOPE -d -q -l -P "$p" "$@" >> /tmp/doggy
exec $CSCOPE -d -q -l -P "$p" "$@" 2>>/tmp/doggy
# echo $CSCOPE -q -l -P "'$p'" "$@" >> /tmp/doggy
# exec $CSCOPE -q -l -P "'$p'" "$@" 2>> /tmp/doggy
# echo $CSCOPE -q -l >> /tmp/doggy
# $CSCOPE -q -l 2>> /tmp/doggy
# /afs/austin/aix/project/aix41C/cscope/bin/cscope -d -q -l \
# -f /afs/austin/aix/project/aix41C/cscope/bos.db
# -P /afs/austin/aix/project/aix41C/build/base
help-gnu-emacs mailing list
Perry Smith ( address@hidden )
Ease Software, Inc. ( http://www.easesoftware.com )
Low cost SATA Disk Systems for IBMs p5, pSeries, and RS/6000 AIX systems
Re: OT:cscope/tags, Perry Smith, 2006/12/04
Message not available