This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Yes - `construct a sed script'. I've done it (attached, committed). Doesn't make it any faster though. The slow bit is:On Tue, Jan 07, 2003 at 10:10:36AM -0500, Andrew Cagney wrote:>>Thoughts?> > >The idea sounds good to me. > >Instead of ed'ing Gdb.log, how about just naming the first file >Gdb.out or Gdb-raw.log, and then sed'ing into Gdb.log.
I can save the unedited output.
To make sed worthwhile, I'd need to construct a sed script that did all substitutions in a single pass. Otherwize the script ends up repeating:
sed -e ... < input > output
mv output input
which is equivalent to ed. That, I think, is something for a rainy day.
It's as simple as "sed -e ... -e ... -e ... -e ... < input > output", isn't it? Or via -f and a file, the same thing.
2003-01-08 Andrew Cagney <ac131313@redhat.com> * gdb_mbuild.sh: Edit the output of `maint print architecture' replacing hex constants with function names and stripping leading file name directory prefixes. Index: gdb_mbuild.sh =================================================================== RCS file: /cvs/src/src/gdb/gdb_mbuild.sh,v retrieving revision 1.3 diff -u -r1.3 gdb_mbuild.sh --- gdb_mbuild.sh 2 Jan 2003 16:40:33 -0000 1.3 +++ gdb_mbuild.sh 8 Jan 2003 23:46:52 -0000 @@ -279,12 +279,32 @@ fail "gdb printed no output" ! -s Gdb.log grep -e internal-error Gdb.log && fail "gdb panic" 1 + echo ... cleanup ${target} + + # Create a sed script that cleans up the output from GDB. + rm -f mbuild.sed + touch mbuild.sed || exit 1 + + # Rules to replace <0xNNNN> with the corresponding function's + # name. + sed -n -e '/<0x0*>/d' -e 's/^.*<0x\([0-9a-f]*\)>.*$/0x\1/p' Gdb.log \ + | sort -u \ + | while read addr + do + func="`addr2line -f -e ./gdb/gdb -s ${addr} | sed -n -e 1p`" + test ${verbose} -gt 0 && echo "${addr} ${func}" 1>&2 + echo "s/<${addr}>/<${func}>/g" + done >> mbuild.sed + + # Rules to strip the leading paths off of file names. + echo 's/"\/.*\/gdb\//"gdb\//g' >> mbuild.sed + # Replace the build directory with a file as semaphore that stops # a rebuild. (should the logs be saved?) cd ${builddir} rm -f ${target}.tmp - mv ${target}/Gdb.log ${target}.tmp + sed -f ${target}/mbuild.sed ${target}/Gdb.log > ${target}.tmp rm -rf ${target} mv ${target}.tmp ${target}
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |