mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-06 15:24:56 +08:00
50 lines
1.1 KiB
Bash
Executable File
50 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
trap "rm -f /tmp/$$" 0 1 2 3 15
|
|
|
|
# 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 -c10-100 |awk '{printf "%s\t%s\t%s\n", "'"$FILE"'",$1,$2}'
|
|
done >/tmp/$$
|
|
dropdb debug
|
|
createdb debug
|
|
echo "
|
|
create table debug (file text, scope char, func text);
|
|
|
|
copy debug from '/tmp/"$$"';
|
|
|
|
select *
|
|
into table debug2
|
|
from debug;
|
|
|
|
create index idebug on debug(scope,func);
|
|
create index idebug2 on debug2(func,scope);
|
|
vacuum debug;
|
|
vacuum debug2;
|
|
|
|
update debug2
|
|
set scope = '_'
|
|
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'
|
|
order by file, func;
|
|
" |psql debug
|
|
|