【问题标题】:how to write a C++ debug function in Windows? [closed]如何在 Windows 中编写 C++ 调试函数? [关闭]
【发布时间】:2022-01-02 16:35:14
【问题描述】:

我想写一个类似linux one的windows调试功能:

#define debug(fmt, ...)  printf("[%s:%d]"fmt"\n", __FUNCTION__, __LINE__, ##__VA_ARGS__)

【问题讨论】:

  • 这就是你想要的,但问题是什么?你遇到了什么问题?
  • 应该可以。如果您遇到问题,请创建minimal reproducible example。如果您不知道自己是否有问题,请在假设有问题之前尝试一下。
  • 首先问问自己“为什么我的代码中需要调试跟踪?”。多年来我发现我可以摆脱几乎所有的调试跟踪和日志记录(除了传入的 API 调用以查看用户在做什么),只需在集成之前先编写单元测试和测试代码。
  • 在 Visual Studio 中使用跟踪点进行临时调试输出。对于永久跟踪输出,请使用 ETW。它已经存在了二十年。

标签: c++ windows debugging


【解决方案1】:

为了使这样的字符串连接起作用,字符串之间需要有空格。 所以这部分:

"[%s:%d]"fmt"\n"

更改为

"[%s:%d]" fmt "\n"

否则,fmt 会被假定为字符串文字运算符 (operator""fmt),您不希望在此处使用它。

不要忘记为printf 包含<cstdio>,然后它应该会按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2019-02-15
    • 2021-03-31
    相关资源
    最近更新 更多