Update find_typedefs to handle simple 'typedef X' cases, per request
from Tom.
This commit is contained in:
parent
51a5921dcc
commit
012786aa1e
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $PostgreSQL: pgsql/src/tools/find_typedef,v 1.7 2007/12/21 14:20:36 momjian Exp $
|
||||
# $PostgreSQL: pgsql/src/tools/find_typedef,v 1.8 2007/12/21 21:02:41 momjian Exp $
|
||||
|
||||
# This script attempts to find all typedef's in the postgres binaries
|
||||
# by using 'nm' to report all typedef debugging symbols.
|
||||
@ -12,8 +12,23 @@
|
||||
#
|
||||
# Ignore the nm errors about a file not being a binary file.
|
||||
#
|
||||
# Remember, debugging symbols are your friends.
|
||||
# It gets typedefs by reading "STABS":
|
||||
#
|
||||
# http://www.informatik.uni-frankfurt.de/doc/texi/stabs_toc.html
|
||||
#
|
||||
# objdump:
|
||||
# -G, --stabs Display (in raw form) any STABS info in the file
|
||||
#
|
||||
# --stabs
|
||||
# Display the contents of the .stab, .stab.index, and
|
||||
# .stab.excl sections from an ELF file. This is only
|
||||
# useful on systems (such as Solaris 2.0) in which
|
||||
# .stab debugging symbol-table entries are carried in
|
||||
# an ELF section. In most other file formats, debug-
|
||||
# ging symbol-table entries are interleaved with
|
||||
# linkage symbols, and are visible in the --syms out-
|
||||
# put.
|
||||
|
||||
|
||||
if [ "$#" -eq 0 -o ! -d "$1" ]
|
||||
then echo "Usage: $0 postgres_binary_directory [...]" 1>&2
|
||||
@ -23,10 +38,7 @@ fi
|
||||
for DIR
|
||||
do
|
||||
objdump --stabs "$DIR"/* |
|
||||
grep "LSYM" |
|
||||
awk '{print $7}' |
|
||||
grep ':t' |
|
||||
sed 's/^\([^:]*\).*$/\1/' |
|
||||
awk ' $2 == "LSYM" && $7 ~ /:[tT]/ {sub(":.*", "", $7); print $7}' |
|
||||
grep -v ' ' # some typedefs have spaces, remove them
|
||||
done |
|
||||
sort |
|
||||
|
Loading…
Reference in New Issue
Block a user