2003-01-08 Andrew Cagney <ac131313@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Wed, 8 Jan 2003 23:49:15 +0000 (23:49 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 8 Jan 2003 23:49:15 +0000 (23:49 +0000)
* gdb_mbuild.sh: Edit the output of `maint print architecture'
replacing hex constants with function names and stripping leading
file name directory prefixes.

gdb/ChangeLog
gdb/gdb_mbuild.sh

index d1355b93d6afa7a1837e8f5f7977595eaa8aedf8..c36404f677cdec8f53ae64f2cf79c289d62c37ae 100644 (file)
@@ -1,3 +1,9 @@
+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.
+
 2003-01-08  Andrew Cagney  <cagney@redhat.com>
 
        * gcore.c, i386-linux-tdep.c: Use get_frame_pc, get_next_frame and
index a1077401a2e43ccf0d22ee016cddd85889f6fbf6..49d18cfbd260c68ae9e3e7361a9182bba4d131b0 100755 (executable)
@@ -279,12 +279,32 @@ EOF
     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}