博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

cheney_lang

   cheney.cublog.cn
关于作者  


我的分类  




solaris下调试程序方法:使用truss

truss 介绍 

solaris下的truss跟linux下的strace功能一样,用来跟踪系统/库函数调用和系统接收到的信号。并把函数调用跟信号发送到标准出错上。

 

truss 使用方法

    truss  -a  -e  -f  -rall  -wall  -p  
    truss  -a  -e  -f  -rall  -wall  

    -a        显示传递给exec函数的参数
    -e        显示传递给exec函数的环境变量
    -f        显示子进程  
    -rall     显示所有读取的数据(默认32bytes)  
   -wall     显示所有写的数据(默认32bytes)  
   -p      Hook到一个已存在的进程(必须是进程的所有者或者root) 
   -d      显示跟踪进程运行的时间
   <program> 指定要运行的程序  
truss 例子
  # truss -rall -wall -f -p <PID>
  # truss -rall -wall lsnrctl start
  # truss -aef lsnrctl dbsnmp_start
 
 # truss -d date

Base time stamp:  1066157908.5731  [ Tue Oct 14 14:58:28 EDT 2003 ]
 0.0000 execve("/usr/bin/date", 0xFFBEF29C, 0xFFBEF2A4)  argc = 1
 0.0449 mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC,MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF3A0000
 0.0453 resolvepath("/usr/lib/ld.so.1", "/usr/lib/ld.so.1", 1023) = 16
 0.0457 open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
 0.0460 open("/usr/lib/libc.so.1", O_RDONLY)            = 3
 0.0463 fstat(3, 0xFFBEE9C4)                            = 0
 0.0464 mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF390000
 0.0466 mmap(0x00000000, 794624, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF280000
 0.0470 mmap(0xFF33A000, 24652, PROT_READ|PROT_WRITE|PROT_EXEC,MAP_PRIVATE|MAP_FIXED, 3, 696320) = 0xFF33A000
 0.0474 munmap(0xFF32A000, 65536)                       = 0
 0.0479 memcntl(0xFF280000, 113332, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
 0.0481 close(3)                                        = 0
 0.0483 open("/usr/lib/libdl.so.1", O_RDONLY)           = 3
 0.0485 fstat(3, 0xFFBEE9C4)                            = 0
 0.0487 mmap(0xFF390000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,3, 0) = 0xFF390000
 0.0490 close(3)                                        = 0
 0.0493 open("/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1", O_RDONLY) = 3
 0.0496 fstat(3, 0xFFBEE854)                            = 0
 0.0497 mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF380000
 0.0500 mmap(0x00000000, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xFF370000
 0.0502 close(3)                                        = 0
 0.0514 munmap(0xFF380000, 8192)                        = 0
 0.0521 brk(0x00022420)                                 = 0
 0.0523 brk(0x00024420)                                 = 0
 0.0526 time()                                          = 1066157908
 0.0531 open("/usr/share/lib/zoneinfo/US/Eastern", O_RDONLY) = 3
 0.0533 read(3, " T Z i f\0\0\0\0\0\0\0\0".., 8192)     = 1250
 0.0536 close(3)                                        = 0
 0.0542 ioctl(1, TCGETA, 0xFFBEEFDC)                    = 0
Tue Oct 14 14:58:28 EDT 2003
 0.0545 write(1, " T u e   O c t   1 4   1".., 29)      = 29
 0.0547 llseek(0, 0, SEEK_CUR)                          = 1829
 0.0549 _exit(0)
  

 发表于: 2008-03-05,修改于: 2008-03-05 16:26 已浏览392次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2010 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.02026

京ICP证041476号