【问题标题】:How to automatically log asserts using Visual Studio?如何使用 Visual Studio 自动记录断言?
【发布时间】:2012-11-22 14:14:23
【问题描述】:

我是使用 Visual Studio 2008 和 C++ 的新手。 我的任务是运行一个自动化系统框架,该框架在应用程序的调试版本上运行一组测试并记录介于两者之间的所有断言。

谁能指出我从哪里开始的正确方向。 Visual Studio 是否为记录断言提供任何此类支持? 如果没有,我还可以为此目的使用什么其他资源?

提前致谢。

【问题讨论】:

  • 创建应用程序进程,附加到应用程序进程,启动应用程序进程,收集调试输出(包括断言)直到程序停止执行。 msdn.microsoft.com/en-us/library/ms809754.aspx 并留意 OUTPUT_DEBUG_STRING_DEBUG_EVENT。现在有人提出了真正的答案。

标签: c++ debugging visual-studio-2008 assert


【解决方案1】:

我不知道 VS2008 中的任何特定功能,但一种选择是根据您的需要重新定义 assert() 宏。沿着这条线:

#define assert(expression) Logfile::getSingletonPtr()->write(...);

你可以根据需要写出表达式、文件、行等。

注意:这种方法会导致warning C4005(宏重新定义),不要惊讶。

如果您想在 assert() 中使用其他消息,还可以查看 this SO thread

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多