軟體調試:利用斷言ASSERT宏定位軟體bug

來源:互聯網
上載者:User

標籤:debug

/*     *Author  : DavidLin            *Date    : 2014-12-26pm            *Email   : [email protected] or [email protected]            *world   : the city of SZ, in China            *Ver     : 000.000.001            *For     : threads for rxtx!         *history :     editor      time            do            *          1)LinPeng       2014-12-26      created this file!            *          2)            */ /* assert_self.h */#ifndef  __ASSERT_SELF_H__#define  __ASSERT_SELF_H__#include<stdio.h>#define    ASSERT_ENABLE    (1)#define    xprintf    printf  /* xprintf can be tty print or uart print, etc */#if  ASSERT_ENABLE#define assert_error()      do     {         xprintf("[ERROR] Assert FILE: %s: LINE %d\n", __FILE__, __LINE__);  \     }while(0)#define    ASSERT1(para)      do     {         if(!para)         {            assert_error();         }      }while(0)  #else  /* if ! ASSERT_ENABLE */ #define    ASSERT1(para)      do     {         if(para)         {         }      }while(0)   #endif  /* end of ASSERT_ENABLE */#endif  /* end of __ASSERT_SELF_H__*/

測試案例

/* test case : test.c */#include<stdio.h>#include"assert_self.h"  int main(int argc, char* argv[]){    switch(argc)    {case 2:    ASSERT1(atoi(argv[1]));    break;default:    printf("ARG ACCEPT 1\n");    break;    }    exit(0);}

        軟體Bug定位,很多時候,比如利用Assert宏,可以把48小時的調試大餐壓縮成1口可以吃掉的飯後甜點,每個軟體小組都在重新演化,過去的經驗總是得不到很好的傳承,這就是我們!


軟體調試:利用斷言ASSERT宏定位軟體bug

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.