Sun的编译器cc以及其调试程序dbx使用

    最近参加了一个项目,因为是做C的,原本以为是使用gcc和gdb来作为编译和调试的工具。结果未曾想,开发环境上居然只允许使用cc编译器,没用过啊。。参数都不知道,没办法,查资料。。啥文的都有,可是苦了俺了。自己忘性大,还是做下纪录,以备后查。

 

CC编译器:

    开发调试常用参数:

      -g 输出带有调试信息的编译结果

      -c 编译文件,但是不做连接(link)操作,默认生成与.c文件同名的.o文件

      -l 指定要是用的lib名称,如libsocket.so则为 -lsocket

      -I 指定要去寻找include头文件的路径,可以复数指定。

      -G 用来指定生成共享库文件

      -o 用来指定生成的文件名

      -m64 Sun Studio 12开始使用的参数,代替-xarch=v9。通常与-xarch=sparc一起使用

      -xcode=[V] 指定程序的ABI空间地址的生成方式。在做成shared library时须指定,Sun默认为-xcode=abs44,不能用这个参数来生成64位shared library。

    参照资料:

            http://docs.sun.com/app/docs/doc/820-1209/bjatt?l=ja&a=view

            http://docs.sun.com/app/docs/doc/819-0389/advanced?l=ja

            http://primeserver.fujitsu.com/unix/soft/opt/oemss12/

例:

    cc -g -c a.c -lsocket -lnsl

    cc -G b.c -o b.so ./a.o

    cc -g a.c -I../include/

 

dbx调试用工具:

    dbx 待调试可执行文件

    (dbx) 命令行

      print 打印指定变量或者表达式的值

      run   执行程序

      runargs 指定程序执行的参数。例如命令行上要用 ./prog 10 20作为启动命令的话,则使用(dbx) runargs 10 20进行启动

      watch 监视某个变量的值,在每次stop后会自动显示出来

      stop at 用于指定断点,主要是某行的断点。比如 stop at a.c:30 的含义是停止于a.c程序的第30行

      stop in 用于指定断点,主要是针对函数名称。比如 stop in doSum 的含义是一旦doSum方法被调用,则停止

      step 步进

      step up 完成当前函数,并且停止到调用函数的下一行。

      cont 继续执行。(continue)

      check 指定rtc检查内容

        -all 指定为全部

        -leaks 指定为内存泄漏,访问异常等

        -memuse 指定为监视内存使用

      showleaks 显示内存泄漏等异常信息

      showmemuse 显示内存的使用量

 

用rtc来进行调试等操作时,可以在dbx的帮助下,看到是否有内存没有声明就被访问,是否有越界访问等等信息。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值