Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1063214
  • 博文数量: 284
  • 博客积分: 8223
  • 博客等级: 中将
  • 技术积分: 3188
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-01 13:26
文章分类

全部博文(284)

文章存档

2012年(18)

2011年(33)

2010年(83)

2009年(147)

2008年(3)

分类:

2009-03-21 21:44:40

solaris是sun公司提供的常用操作系统,以该系统为环境进行应用程序开发,有三个工具必须掌握:
1.dbx:
    dbx是常用的调试工具,有了它,我们才能够进行程序调试,常用的操作包括:
    (1)连接:dbx 程序名、dbx  程序名 PID、dbx - core
    (2)运行:run、 cont
    (3)显示变量:display、print
        a. 显示数据      display xxx
           终止显示数据  undisplay xxx
        b. 查看变量      print xxx
           查看数组      print xxx[2..4] 二维到4维
       
    (4)中断点: stop at ×××.c:xxx、stop when XXX、clear
        a. 函数入口中断 stop in main。。。
        b. 具体语句中断 stop at xxx.c:xxx(行号)
        c. 变量变化中断 stop change xxx
        d. 查看中断点   status
        e. 删除中断     delete all
    (5)单步运行:step、next、step up
    (6)调用栈:where
    (7)显示当前程序内容:list
    (8)改变变量中的值:assign xxx = xxx
2.Dtrace:
    经典的跟踪工具,既可以实现对操作系统相关操作的跟踪,也可以对应用程序运行状态的跟踪。不过,只能跟踪函数调用与return,对于变量值无法提供跟踪能力。优点在于不需要暂停程序功能,执行不会对系统或程序本身进行修改。
   (1)调用:dtrace -l ;dtrace -s ×××.s  ***
   (2)d语言语法:与C差不多,不过以解释方式执行;
           BEGIN
           {
               printf("Begin \n");
           }
          
            .... 其他程序段
           END
           {
               printf("End \n");
           }
   (3)谓语:实现判断功能;时间触发
           profile:::tick-1sec
           /pid == $1/
           {
           }
           程序PID为。。。的情况下,触发该功能块
   (4)显示:
           trace(i);
   (5)函数调用触发:
           pid$1::time:
           {
            }
            表示pid为$1的程序中time调用时便执行下面程序块中的功能
   (6)其他变量:
           errno 系统当前error名
           execname 可执行程序名
           pid 进程号
           tid 线程号
           probeprov 当前探测器提供器字段
           probemod 模块名
           probefunc 函数名
           probename 名称
           timestamp 系统计数器
           $1 参数1
  (7)内部函数表:
           count()
           sum()
           arg()
           min()
           max()
           trace()
           printf()
           ustack()
           exit()
           stop()
           raise()
           system()
           break()
           panic()
 
3.mdb:
    作为C程序员,有谁没有因为内存错误而出过core,有谁没有因为指针越界造成的问题而头疼过,mdb就是用来检测内存相关问题的工具。
阅读(850) | 评论(0) | 转发(0) |
0

上一篇:2009年3月15日

下一篇:090403

给主人留下些什么吧!~~