【问题标题】:File and Line number for Debugging [duplicate]用于调试的文件和行号 [重复]
【发布时间】:2011-03-29 22:44:33
【问题描述】:

可能重复:
C/C++ line number

嗨,

我有一个简单的错误管理器类,其他类使用它来报告错误,然后将其打印到日志文件中以供以后检查。我可以打印出描述并给它错误代码。我还想要的是它记录错误记录的文件名和行号(自动,而不是我每次都写)。有什么办法吗?我知道它会完成,因为我已经看到了,但我找不到解决方案 - 可能是由于搜索词不正确。

谢谢!

【问题讨论】:

标签: c++


【解决方案1】:

正如 James McNellis 所说,使用 __FILE____LINE__ 宏。请注意,这些是宏,如果您只是在错误处理方法中使用它们,它们只会告诉您错误处理方法的定义位置。如果您不想在代码中散布它们,则需要在另一个宏中使用它们。像这样的:

void my_error_handler(const char* file, int line, const char* message) {
    // ...
}

#define ERROR(MESSAGE) my_error_handler(__FILE__, __LINE__, MESSAGE)

然后你可以在你的代码中使用它:

if (1 == 2) {
    ERROR("Something went wrong.");
}

【讨论】:

    【解决方案2】:

    是的,您可以使用 __FILE____LINE__ 宏,它们分别扩展为文件名和行号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-17
      • 2011-03-31
      • 1970-01-01
      • 2013-12-10
      • 2011-09-03
      • 2014-01-28
      • 2015-10-19
      • 1970-01-01
      相关资源
      最近更新 更多