⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findstatic.pl

📁 samba最新软件
💻 PL
字号:
#!/usr/bin/perl -w# find a list of fns and variables in the code that could be static# usually called with something like this:#    findstatic.pl `find . -name "*.o"`# Andrew Tridgell <tridge@samba.org>use strict;# use nm to find the symbolsmy($saved_delim) = $/;undef $/;my($syms) = `nm -o @ARGV`;$/ = $saved_delim;my(@lines) = split(/\n/s, $syms);my(%def);my(%undef);my(%stype);my(%typemap) = (	       "T" => "function",	       "C" => "uninitialised variable",	       "D" => "initialised variable"		);# parse the symbols into defined and undefined for (my($i)=0; $i <= $#{@lines}; $i++) {	my($line) = $lines[$i];	if ($line =~ /(.*):[a-f0-9]* ([TCD]) (.*)/) {		my($fname) = $1;		my($symbol) = $3;		push(@{$def{$fname}}, $symbol);		$stype{$symbol} = $2;	}	if ($line =~ /(.*):\s* U (.*)/) {		my($fname) = $1;		my($symbol) = $2;		push(@{$undef{$fname}}, $symbol);	}}# look for defined symbols that are never referenced outside the place they # are definedforeach my $f (keys %def) {	print "Checking $f\n";	my($found_one) = 0;	foreach my $s (@{$def{$f}}) {		my($found) = 0;		foreach my $f2 (keys %undef) {			if ($f2 ne $f) {				foreach my $s2 (@{$undef{$f2}}) {					if ($s2 eq $s) {						$found = 1;						$found_one = 1;					}				}			}		}		if ($found == 0) {			my($t) = $typemap{$stype{$s}};			print "  '$s' is unique to $f  ($t)\n";		}	}	if ($found_one == 0) {		print "  all symbols in '$f' are unused (main program?)\n";	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -