调试的文件和行号

Sam*_*rsa 1 c++

可能重复:
C/C++行号

嗨,

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

谢谢!

Ras*_*Kaj 8

正如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)
Run Code Online (Sandbox Code Playgroud)

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

if (1 == 2) {
    ERROR("Something went wrong.");
}
Run Code Online (Sandbox Code Playgroud)


Jam*_*lis 6

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