[GiNaC-list] well, here's the latest story on recursive grep
Richard Haney
rfhaney at yahoo.com
Wed Jul 19 01:08:03 CEST 2006
Effective recursive search with grep seems to be an important skill
when trying to debug CLN and GiNaC.
I tried a bit more searching on the Internet and tried a few more
combinations with my existing versions of grep. Many of the
alternative work-arounds posted on the Internet do not work very well.
But I finally found a usage scheme that seems to work fairly well for
recursive grep.
I have four versions of grep on my computer and only cygwin grep seems
to work reasonably well, provided one __guesses__ at the right
combination of arguments. Here's what I've learned -- so you won't
have to do such a horrendous amount of guessing.
Here's a generic example of the usage of cygwin grep that works:
grep -r --include="*.cc" --include="*.cpp" "Illegal number syntax"
*
Here's the command & output in a cygwin bash shell in working directory
/cygdrive/c/gnu/cln-1.1.11/src:
$ grep -r --include="*.cc" --include="*.cpp" "Illegal number
syntax" *
base/input/cl_read_err_bad.cc: fprint(std::cerr, "Illegal number
syntax: \"");
base/input/cl_read_err_bad.cc--debug.cpp: fprint(std::cerr,
"Illegal numbe
r syntax: \"");
base/input/cl_read_err_bad.cc--original_now_in_effect.cpp:
fprint(std::cerr
, "Illegal number syntax: \"");
(Note that I labeled backup copies with a .cpp extension because "CLN
make" in this area sweeps up any existing file with extension .cc for
inclusion in the library.)
Using the option "--directories=recurse" in place of "-r" produces the
same output.
But note that while "grep -r "Illegal number syntax" *" searches
_all_ files in the hierarchy and produces the output:
base/input/cl_read_err_bad.cc: fprint(std::cerr, "Illegal number
syntax: \"");
base/input/cl_read_err_bad.cc--debug.cpp: fprint(std::cerr,
"Illegal numbe
r syntax: \"");
base/input/cl_read_err_bad.cc--original_now_in_effect.cpp:
fprint(std::cerr
, "Illegal number syntax: \"");
Binary file cl_read_err_bad.o matches
Binary file cl_read_err_bad.o--comment out for debugging.oxx matches
, the more specific command "grep -r "Illegal number syntax" *.cc"
fails to produce the desired output, but instead we get:
grep: *.cc: No such file or directory
And, therefore to be expected, "grep -r "Illegal number syntax" *.cc
*.cpp" fails in the same way:
grep: *.cc: No such file or directory
grep: *.cpp: No such file or directory
Of my four versions of grep, only cygwin grep has the "--include=..."
option. MinGW's msys grep does not have that option, and moreover,
MinGW's msys grep has the same problem that cygwin grep has with the
similar command:
"c:/msys/1.0.8/bin/grep.exe" -r "Illegal number syntax" *.cc
Version information: Executing the cygwin grep command "grep -V"
produces the output "grep (GNU grep) 2.5" along with (gnu) copyright
and (non-) warranty information. This grep was packaged in a cygwin
setup.exe file that yielded an intermediate-expansion file (among many)
with name "release\grep\grep-2.5-1.tar.bz2" along with a parallel
intermediate-expansion file of
"release\cygwin\cygwin-1.3.20-1.tar.bz2".
Happy debugging!
Richard Haney
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the GiNaC-list
mailing list