码迷,mamicode.com
首页 > 其他好文 > 详细

在Debug模式下中断, 在Release模式下跳出当前函数的断言

时间:2017-08-12 12:37:15      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:efi   int   ide   验证   repr   app   pop   fine   func   

在Debug模式下中断, 在Release模式下跳出当前函数的断言

#ifdef DEBUG
#define __breakPoint_on_debug asm("int3")
#else
#define __breakPoint_on_debug
#endif

// 验证
#define UXY_ASSERT_RETURN_ON_RELEASE( __condition, __desc, ... ) \
        metamacro_if_eq(0, metamacro_argcount(__VA_ARGS__))         (__XY_ASSERT_1(__condition, __desc, __VA_ARGS__))            (__XY_ASSERT_2(__condition, __desc, __VA_ARGS__))

#define __XY_ASSERT_1( __condition, __desc ) \
        if ( !(__condition) ) __breakPoint_on_debug;           else return;

#define __XY_ASSERT_2( __condition, __desc, __returnedValue ) \
        if ( !(__condition) ) __breakPoint_on_debug;           else return __returnedValue;

在Debug模式下中断, 在Release模式下跳出当前函数的断言

标签:efi   int   ide   验证   repr   app   pop   fine   func   

原文地址:http://www.cnblogs.com/claireyuancy/p/7349763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!