c++ - 用于调试的文件和行号

标签 c++

<分区>

Possible Duplicate:
C/C++ line number

你好,

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

谢谢!

最佳答案

正如 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.");
}

关于c++ - 用于调试的文件和行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3485150/

相关文章:

c++ - 从控制台读取一行

c++ - 对静态函数的 undefined reference

c++ - 是否存在 self 分配有用的情况?

c++ - 高效的 SSE NxN 矩阵乘法

c++ - 如何表达 "the minimum integral type larger than T"?

c++ - 模拟一堆卡片的最佳容器

c++ - 防止在 C++ 的构造函数中隐式转换数字类型

c++ - 从未被着色器处理的位置照亮图元

c++ - 用成员初始化列表初始化类对象的引用变量?

c++ - 什么时候通过引用传递函数参数,什么时候通过地址传递?