【问题标题】:C++ suppress assertions in debug build [duplicate]C ++在调试构建中抑制断言[重复]
【发布时间】:2016-01-25 12:56:19
【问题描述】:

我有我的 wxWidgets 客户端/服务器应用程序,并在 wxWidgets 网络内容中遇到了一个复杂的错误。说来话长,这里略过。

wxWidgets 代码使用了断言,所以我无法将其视为异常。

我可以在调试模式下编译时抑制断言吗?

每次断言发生时,都会出现 wxWidget 的断言信息窗口,因此用户需要按“继续”或“中止”按钮。如果我无法捕捉到它(断言也不例外),我想压制它。

【问题讨论】:

  • 关闭这个问题是错误的,因为 wxWidgets 断言 (wxASSERT(), wxCHECK(), ...) 与标准的 assert() 宏完全不同,即使它们都受到 @ 的影响987654324@.

标签: c++ exception wxwidgets assertion suppress


【解决方案1】:

如果你说的是标准的assert macro,你可以通过定义NDEBUG宏来关闭它。

如果 NDEBUG 在源代码中被定义为宏名 其中包含<cassert>,然后assert 什么也不做。

【讨论】:

  • 谢谢,这行得通,但不幸的是没有解决我的 wxWidgets 问题;在抑制断言之后,GUI 停止重新绘制它应该如何重新绘制,并且一旦它甚至取消了 openbox。我会尝试找到另一个用于网络的库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 1970-01-01
  • 2011-05-19
相关资源
最近更新 更多