JavaScript is required to for searching.
跳过导航链接
退出打印视图
手册页第 1 部分:用户命令     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

简介

User Commands

acctcom(1)

adb(1)

addbib(1)

admin(1)

alias(1)

allocate(1)

amt(1)

appcert(1)

apptrace(1)

apropos(1)

ar(1)

arch(1)

as(1)

asa(1)

at(1)

atq(1)

atrm(1)

audioconvert(1)

audioctl(1)

audioplay(1)

audiorecord(1)

audiotest(1)

auths(1)

auto_ef(1)

awk(1)

banner(1)

basename(1)

basename(1B)

batch(1)

bc(1)

bdiff(1)

bfs(1)

bg(1)

biff(1B)

break(1)

builtin(1)

cal(1)

calendar(1)

case(1)

cat(1)

cd(1)

cdc(1)

cdrw(1)

chdir(1)

checkeq(1)

checknr(1)

chgrp(1)

chkey(1)

chmod(1)

chown(1)

chown(1B)

ckdate(1)

ckgid(1)

ckint(1)

ckitem(1)

ckkeywd(1)

ckpath(1)

ckrange(1)

ckstr(1)

cksum(1)

cktime(1)

ckuid(1)

ckyorn(1)

clear(1)

cmp(1)

col(1)

comb(1)

comm(1)

command(1)

compress(1)

continue(1)

cp(1)

cpio(1)

cpp(1)

cputrack(1)

crle(1)

crontab(1)

csh(1)

csplit(1)

ct(1C)

ctags(1)

ctrun(1)

ctstat(1)

ctwatch(1)

cu(1C)

cut(1)

date(1)

dc(1)

deallocate(1)

decrypt(1)

delta(1)

deroff(1)

df(1B)

dhcpinfo(1)

diff(1)

diff3(1)

diffmk(1)

digest(1)

digestp(1)

dircmp(1)

dirname(1)

dirs(1)

dis(1)

disown(1)

dispgid(1)

dispuid(1)

dos2unix(1)

dpost(1)

du(1)

du(1B)

dump(1)

dumpcs(1)

dumpkeys(1)

echo(1)

echo(1B)

ed(1)

edit(1)

egrep(1)

eject(1)

elfdump(1)

elfedit(1)

elffile(1)

elfsign(1)

elfwrap(1)

encrypt(1)

enhance(1)

env(1)

eqn(1)

errange(1)

errdate(1)

errgid(1)

errint(1)

erritem(1)

error(1)

errpath(1)

errstr(1)

errtime(1)

erruid(1)

erryorn(1)

eval(1)

ex(1)

exec(1)

exit(1)

expand(1)

export(1)

exportfs(1B)

expr(1)

expr(1B)

exstr(1)

factor(1)

false(1)

fastboot(1B)

fasthalt(1B)

fc(1)

fg(1)

fgrep(1)

file(1)

file(1B)

filebench(1)

filep(1)

filesync(1)

filofaxp(1)

find(1)

finger(1)

fmt(1)

fmtmsg(1)

fold(1)

for(1)

foreach(1)

franklinp(1)

from(1B)

ftp(1)

function(1)

gcore(1)

gencat(1)

geniconvtbl(1)

genmsg(1)

get(1)

getconf(1)

getfacl(1)

getlabel(1)

getopt(1)

getoptcvt(1)

getopts(1)

gettext(1)

gettxt(1)

getzonepath(1)

glob(1)

goto(1)

gprof(1)

grep(1)

groups(1)

groups(1B)

grpck(1B)

hash(1)

hashcheck(1)

hashmake(1)

hashstat(1)

head(1)

helpdate(1)

helpgid(1)

helpint(1)

helpitem(1)

helppath(1)

helprange(1)

helpstr(1)

helptime(1)

helpuid(1)

helpyorn(1)

hist(1)

history(1)

hostid(1)

hostname(1)

i386(1)

i486(1)

iconv(1)

if(1)

indxbib(1)

install(1B)

ipcrm(1)

ipcs(1)

isainfo(1)

isalist(1)

jobs(1)

join(1)

jsh(1)

kbd(1)

kdestroy(1)

keylogin(1)

keylogout(1)

kill(1)

kinit(1)

klist(1)

kmdb(1)

kmfcfg(1)

kpasswd(1)

krb5-config(1)

ksh(1)

ksh88(1)

ksh93(1)

ktutil(1)

kvno(1)

lari(1)

last(1)

lastcomm(1)

ld(1)

ldapadd(1)

ldapdelete(1)

ldaplist(1)

ldapmodify(1)

ldapmodrdn(1)

ldapsearch(1)

ldd(1)

ld.so.1(1)

let(1)

lex(1)

lgrpinfo(1)

limit(1)

line(1)

list_devices(1)

listusers(1)

llc2_autoconfig(1)

llc2_config(1)

llc2_stats(1)

ln(1)

ln(1B)

loadkeys(1)

locale(1)

localedef(1)

logger(1)

logger(1B)

login(1)

logname(1)

logout(1)

look(1)

lookbib(1)

lorder(1)

ls(1)

ls(1B)

m4(1)

mac(1)

mach(1)

machid(1)

madv.so.1(1)

mail(1)

Mail(1B)

mail(1B)

mailcompat(1)

mailp(1)

mailq(1)

mailstats(1)

mailx(1)

make(1S)

makekey(1)

man(1)

mconnect(1)

mcs(1)

mdb(1)

mesg(1)

mkdir(1)

mkmsgs(1)

mkstr(1B)

mktemp(1)

moe(1)

more(1)

mp(1)

mpss.so.1(1)

msgcc(1)

msgcpp(1)

msgcvt(1)

msgfmt(1)

msggen(1)

msgget(1)

mt(1)

mv(1)

nawk(1)

nc(1)

ncab2clf(1)

ncakmod(1)

neqn(1)

netcat(1)

newform(1)

newgrp(1)

newsp(1)

newtask(1)

nice(1)

nl(1)

nm(1)

nohup(1)

notify(1)

nroff(1)

od(1)

on(1)

onintr(1)

optisa(1)

pack(1)

packagemanager(1)

page(1)

pagesize(1)

pargs(1)

passwd(1)

paste(1)

patch(1)

pathchk(1)

pax(1)

pcat(1)

pcred(1)

perl(1)

pfbash(1)

pfcsh(1)

pfexec(1)

pfiles(1)

pfksh(1)

pflags(1)

pfsh(1)

pftcsh(1)

pfzsh(1)

pg(1)

pgrep(1)

pkcs11_inspect(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkginfo(1)

pkglint(1)

pkgmerge(1)

pkgmk(1)

pkgmogrify(1)

pkgparam(1)

pkgproto(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pkgtrans(1)

pkill(1)

pklogin_finder(1)

pktool(1)

plabel(1)

pldd(1)

plgrp(1)

plimit(1)

pmadvise(1)

pmap(1)

pm-updatemanager(1)

popd(1)

ppgsz(1)

ppriv(1)

pr(1)

praliases(1)

prctl(1)

preap(1)

print(1)

printenv(1B)

printf(1)

priocntl(1)

proc(1)

prof(1)

profiles(1)

projects(1)

prs(1)

prt(1)

prun(1)

ps(1)

ps(1B)

psig(1)

pstack(1)

pstop(1)

ptime(1)

ptree(1)

pushd(1)

pvs(1)

pwait(1)

pwd(1)

pwdx(1)

radadrgen(1)

ranlib(1)

rcapstat(1)

rcp(1)

read(1)

readonly(1)

red(1)

refer(1)

regcmp(1)

rehash(1)

remote_shell(1)

remsh(1)

renice(1)

repeat(1)

reset(1B)

return(1)

rksh(1)

rksh88(1)

rlogin(1)

rm(1)

rmail(1)

rmdel(1)

rmdir(1)

rmformat(1)

rmmount(1)

rmumount(1)

roffbib(1)

roles(1)

rpcgen(1)

rpm2cpio(1)

rsh(1)

runat(1)

rup(1)

rup(1C)

ruptime(1)

rusage(1B)

rusers(1)

rwho(1)

sact(1)

sar(1)

sccs(1)

sccs-admin(1)

sccs-cdc(1)

sccs-comb(1)

sccs-delta(1)

sccsdiff(1)

sccs-get(1)

sccs-help(1)

sccshelp(1)

sccs-prs(1)

sccs-prt(1)

sccs-rmdel(1)

sccs-sact(1)

sccs-sccsdiff(1)

sccs-unget(1)

sccs-val(1)

scp(1)

script(1)

sdiff(1)

sed(1)

sed(1B)

select(1)

set(1)

setenv(1)

setfacl(1)

setlabel(1)

setpgrp(1)

settime(1)

sftp(1)

sh(1)

shcomp(1)

shell_builtins(1)

shift(1)

shutdown(1B)

size(1)

sleep(1)

soelim(1)

sort(1)

sortbib(1)

sotruss(1)

source(1)

sparc(1)

spell(1)

spellin(1)

split(1)

srchtxt(1)

ssh(1)

ssh-add(1)

ssh-agent(1)

ssh-http-proxy-connect(1)

ssh-keygen(1)

ssh-keyscan(1)

ssh-socks5-proxy-connect(1)

stop(1)

strchg(1)

strconf(1)

strings(1)

strip(1)

stty(1)

stty(1B)

sum(1)

sum(1B)

sun(1)

suspend(1)

svcprop(1)

svcs(1)

switch(1)

symorder(1)

sys-suspend(1)

sysV-make(1)

t300(1)

t300s(1)

t4014(1)

t450(1)

tabs(1)

tail(1)

talk(1)

tar(1)

tbl(1)

tcopy(1)

tee(1)

tek(1)

telnet(1)

test(1)

test(1B)

tftp(1)

time(1)

timemanp(1)

times(1)

timesysp(1)

timex(1)

tip(1)

touch(1)

touch(1B)

tplot(1)

tput(1)

tr(1)

tr(1B)

trap(1)

troff(1)

true(1)

truss(1)

tset(1B)

tsort(1)

tty(1)

type(1)

typeset(1)

ul(1)

ulimit(1)

umask(1)

unalias(1)

uname(1)

uncompress(1)

unexpand(1)

unget(1)

unhash(1)

unifdef(1)

uniq(1)

units(1)

unix2dos(1)

unlimit(1)

unpack(1)

unset(1)

unsetenv(1)

until(1)

updatehome(1)

uptime(1)

userattr(1)

users(1B)

uucp(1C)

uudecode(1C)

uuencode(1C)

uuglist(1C)

uulog(1C)

uuname(1C)

uupick(1C)

uustat(1C)

uuto(1C)

uux(1C)

vacation(1)

val(1)

valdate(1)

valgid(1)

valint(1)

valpath(1)

valrange(1)

valstr(1)

valtime(1)

valuid(1)

valyorn(1)

vc(1)

vedit(1)

ver(1)

vgrind(1)

vi(1)

view(1)

vipw(1B)

volcheck(1)

volrmmount(1)

w(1)

wait(1)

wc(1)

what(1)

whatis(1)

whence(1)

whereis(1B)

which(1)

while(1)

who(1)

whoami(1B)

whocalls(1)

whois(1)

write(1)

xargs(1)

xgettext(1)

xstr(1)

yacc(1)

yes(1)

ypcat(1)

ypmatch(1)

yppasswd(1)

ypwhich(1)

zcat(1)

zlogin(1)

zonename(1)

zonestat(1)

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

apptrace

- 跟踪对 Solaris 共享库的应用函数调用

用法概要

apptrace [-f] [-F [!] tracefromlist] [-T [!] tracetolist] 
     [-o outputfile] [ [-tv] [!] call ,...] command 
     [command arguments]

描述

apptrace 实用程序运行 command 所指定的可执行程序,并跟踪程序 command 对 Solaris 共享库所进行的所有函数调用。对于可跟踪的每个函数调用,apptrace 会报告所调用的库接口的名称、所传递的参数值以及返回值。

缺省情况下,apptrace 跟踪从可执行目标文件到所依赖的任何共享目标文件的直接调用。缺省情况下不报告间接调用(即可执行文件所依赖的共享目标文件之间的调用)。

可以使用 -F-T 选项(请参见下文)跟踪更多共享目标文件之间的调用。

缺省报告格式为每个调用一行,且不提供通过引用传递的参数以及数据结构的格式化输出。

可使用 -v 选项(请参见下文)获得提供更多参数详细信息的格式化输出。

缺省情况下,会跟踪共享目标文件所提供的每个接口(如果已调用)。但是,可以使用 -t 和/或 -v 选项限制要跟踪的接口组。

由于一般情况下可以跟踪在运行时链接的任何动态目标文件(可执行目标文件以及所依赖的任何共享目标文件)之间的调用,因此所跟踪的每个调用的报告将提供发出调用的目标文件名称。

apptrace 会跟踪动态目标文件之间通过过程链接表发生的所有过程调用,因此仅跟踪通过该表绑定的那些过程调用。请参见《链接程序和库指南》

选项

支持以下选项:

-f

追踪 fork(2) 所创建的所有子项。此选项还将在每行的开头输出进程 ID。

-F [!]tracefromlist

跟踪从一个逗号分隔的共享目标文件列表发出的调用。仅跟踪从这些共享目标文件发出的调用。缺省值为仅跟踪从主可执行对象发出的调用。仅要求提供共享目标文件的基名。例如,libc 将匹配 /usr/lib/libc.so.1。此外,还支持 shell 样式通配符(如fnmatch(5) 中所述)。列表前面带有 "!" 表示不应跟踪从列表中目标文件发出的调用。如果要求跟踪从 command 发出的调用,则 command 必须是 tracefromlist 的成员。

-o outputfile

apptrace 输出将定向到 outputfile。缺省情况下,apptrace 输出放置在所跟踪的进程的标准错误流上。

-t [!]call, . . .

跟踪或排除函数调用。将跟踪逗号分隔列表 call 中指定的调用。如果列表以 ! 开头,将从跟踪输出中排除指定的函数调用。缺省值为 -t *。允许使用 shell 样式通配符。

-T [!]tracetolist

跟踪对逗号分隔的共享目标文件列表的调用。缺省值为跟踪对所有共享目标文件的调用。如上所述,只需提供基名,且允许使用通配符。列表前面带有 "!" 表示不应跟踪对列表中目标文件的调用。

-v [!]call, . . .

提供详细的格式化的参数输出,以及所指定的函数调用的返回值(如上面的 -t 选项中所述)。与 truss(1) 不同,-v 选项指定的调用无需再由 -t 选项指定。例如,apptrace -v open 等同于 truss -t open -v open

示例

示例 1 跟踪日期命令

% apptrace date
-> date     -> libc.so.1:atexit(0xff3bf9ac, 0x22000, 0x0) ** NR
-> date     -> libc.so.1:atexit(0x11550, 0xfefeef80, 0xab268) ** NR
-> date     -> libc.so.1:setlocale(0x6, 0x11560, 0x0) ** NR
-> date     -> libc.so.1:textdomain(0x11564, 0xfefce156, 0xff160200) ** NR
-> date     -> libc.so.1:int getopt(int = 0x1,
                        const char * * = 0xffbffa5c,
                        const char * = 0x11574 "a:u")
<- date     -> libc.so.1:getopt() = 0xffffffff
-> date     -> libc.so.1:time_t time(time_t * = 0x225c0)
<- date     -> libc.so.1:time() = 0x41ab6e82
-> date     -> libc.so.1:char * nl_langinfo(nl_item = 0x3a)
<- date     -> libc.so.1:nl_langinfo() = 0xfefd3e10
-> date     -> libc.so.1:struct tm * localtime(const time_t * = 0x225c0)
<- date     -> libc.so.1:localtime() = 0xff160240
-> date     -> libc.so.1:memcpy(0xffbff9cc, 0xff160240, 0x24) ** NR
-> date     -> libc.so.1:size_t strftime(char * = 0x225c4 "",
                        size_t = 0x400,
                        const char * = 0xfefd3e10 "%a %b %e %T %Z %Y",
                        const struct tm * = 0xffbff9cc)
<- date     -> libc.so.1:strftime() = 0x1c
-> date     -> libc.so.1:int puts(const char * = 0x225c4
                        "Mon Nov 29 10:46:26 PST 2004")
                        Mon Nov 29 10:46:26 PST 2004
<- date     -> libc.so.1:puts() = 0x1d
-> date     -> libc.so.1:exit(0x0, 0x22400, 0x0) ** NR

示例 2 跟踪设置了详细级别的特定接口组

% apptrace -v localtime,strftime,puts date
-> date     -> libc.so.1:struct tm * localtime(const time_t * = 0x225c0)
        arg0 = (const time_t *) 0x225c0
        return = (struct tm *) 0xff160280 (struct tm) {
        tm_sec: (int) 0x4
        tm_min: (int) 0x34
        tm_hour: (int) 0xa
        tm_mday: (int) 0x1d
        tm_mon: (int) 0xa
        tm_year: (int) 0x68
        tm_wday: (int) 0x1
        tm_yday: (int) 0x14d
        tm_isdst: (int) 0
        }
<- date     -> libc.so.1:localtime() = 0xff160280
-> date     -> libc.so.1:size_t strftime(char * = 0x225c4 "",
                        size_t = 0x400,
                        const char * = 0xfefd3e10 "%a %b %e %T %Z %Y",
                        const struct tm * = 0xffbff99c)
        arg0 = (char *) 0x225c4 ""
        arg1 = (size_t) 0x400
        arg2 = (const char *) 0xfefd3e10 "%a %b %e %T %Z %Y"
        arg3 = (const struct tm *) 0xffbff99c (struct tm) {
        tm_sec: (int) 0x4
        tm_min: (int) 0x34
        tm_hour: (int) 0xa
        tm_mday: (int) 0x1d
        tm_mon: (int) 0xa
        tm_year: (int) 0x68
        tm_wday: (int) 0x1
        tm_yday: (int) 0x14d
        tm_isdst: (int) 0
        }
        return = (size_t) 0x1c
<- date     -> libc.so.1:strftime() = 0x1c
-> date     -> libc.so.1:int puts(const char * = 0x225c4
                        "Mon Nov 29 10:52:04 PST 2004")
        arg0 = (const char *) 0x225c4 "Mon Nov 29 10:52:04 PST 2004"
                        Mon Nov 29 10:52:04 PST 2004
        return = (int) 0x1d
<- date     -> libc.so.1:puts() = 0x1d

** NR-不跟踪函数调用的返回值。

文件

Solaris 运行时链接程序 (ld.so.1(1)) 的链接审计功能提供了对 apptrace 的基本运行时支持,并且此工具对 apptrace 命令的使用依赖于保存在 /usr/lib/abi 中的一个审计目标文件 (apptrace.so.1)。

限制

通常,apptrace 无法跟踪对接受变量参数列表的函数的调用。在某些情况下,可通过一些巧妙的编码来解决此问题,尤其是在 printfscanf 系列中。

apptrace 实用程序无法跟踪返回类型为 structunion 的函数调用的返回值。

无法跟踪试图探测栈或提取调用者相关信息的函数。例如,[gs]etcontext()[sig]longjmp()[sig]setjmp()vfork()

对于 exit(2) 等不会返回的函数,不会跟踪其返回值。

为安全起见,只有具有相应特权的进程可以使用 apptrace 跟踪 setuid/setgid 程序。

在跟踪需要包含 <varargs.h> 才能使用的函数(例如 vwprintw(3XCURSES)vwscanw(3XCURSES))时,将不会提供参数的格式化输出。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
developer/appcert(32 位)
SUNWcstlx(64 位)
接口稳定性
Uncommitted(未确定)

另请参见

ld.so.1(1)truss(1)vwprintw(3XCURSES)vwscanw(3XCURSES)attributes(5)fnmatch(5)

《链接程序和库指南》