postgresql/src/tools/find_static

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

51 lines
1.2 KiB
Plaintext
Raw Normal View History

1997-08-20 04:10:47 +02:00
#!/bin/sh
2010-09-20 22:08:53 +02:00
# src/tools/find_static
trap "ret=$?; rm -rf /tmp/$$; exit $ret" 0 1 2 3 15
1997-08-20 04:10:47 +02:00
# This script finds functions that are either never called, or
# should be static.
# Some functions, like library functions and debug_print functions,
# should remain unchanged.
# Run on a compiled source tree, from the top of the source tree
# My nm utility has 9 characters of address which I strip, then a 'type'
# character, with T as a text function, and U as an undefined function
# symbol, then the function name.
find . -name '[a-z]*.o' -type f -print | while read FILE
do nm $FILE | cut -c17-100 |awk '{printf "%s\t%s\t%s\n", "'"$FILE"'",$1,$2}'
1997-08-20 04:10:47 +02:00
done >/tmp/$$
dropdb debug
1997-08-20 04:10:47 +02:00
createdb debug
echo "
create table debug (file text, scope char, func text);
copy debug from '/tmp/"$$"';
select *
into table debug2
1997-08-20 04:10:47 +02:00
from debug;
create index idebug on debug(scope,func);
create index idebug2 on debug2(func,scope);
vacuum debug;
vacuum debug2;
update debug2
set scope = '_'
1997-08-20 04:10:47 +02:00
from debug
where debug2.func = debug.func and
debug2.scope = 'T' and debug.scope = 'U';
delete from debug2
where scope = '_';
select *
from debug2
where scope = 'T' and func != 'main'
order by file, func;
" |psql -X debug