【问题标题】:Show line number object is destructed显示行号对象被破坏
【发布时间】:2013-05-30 12:50:25
【问题描述】:

我正在实现一种跟踪机制,该机制在输入函数和退出函数时(当跟踪对象被破坏时)输出日志行。我也有兴趣输出范围退出的行号,但不确定如何完成此操作,因为对象在退出时被销毁。显然,析构函数中的__LINE__ 不起作用,因为它只会输出析构函数的行号。

【问题讨论】:

  • 作用域在函数的右大括号处结束(除非你说的是在某个表达式期间持续存在的临时变量)。你真的需要记录吗?
  • @jrok 我想我的意思是要打印 导致范围退出的行号,例如通过 return 语句。
  • 我明白了。也许是这样:#define LOG_RETURN(x) return (std::clog << __LINE__), (x); :)

标签: c++ trace line-numbers


【解决方案1】:

解决方案是转储堆栈跟踪,它的完成方式取决于平台/编译器。对于 Visual Studio,您可以使用 DbgHelp 库,但打印堆栈跟踪的完整代码相当冗长。

【讨论】:

    猜你喜欢
    • 2010-12-25
    • 1970-01-01
    • 2018-02-26
    • 2020-03-05
    • 2020-11-17
    • 2014-05-26
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多