Eri*_*ert
10
如果你可以重新编译库,那么Marc是正确的; 只是在没有定义DEBUG的情况下重新编译它,所有的断言都会消失.
如果你不能这样做,因为假设你没有库的源代码,那么你可以让你的程序清除跟踪监听器.当断言发射时,它仍然会发射,但它什么都不做.(当一个断言触发时,它只是检查以查看哪些跟踪侦听器已注册,并通知它们有关断言.没有侦听器意味着什么都没有发生.)
在这种情况下,您可以考虑使用自己的客户跟踪侦听器替换默认跟踪侦听器,这样可以将断言记录到文件中.这样,您可以查看日志,并查看在库的调试版本的"正常"执行中会弹出哪些断言.