【问题标题】:Is there a facility in C++ similar to ruby's set_trace_function?C++ 中是否有类似于 ruby​​ 的 set_trace_function 的工具?
【发布时间】:2011-08-29 21:30:25
【问题描述】:

在 ruby​​ 中,Kernel 对象上有一个名为 set_trace_function 的方法。它有时会在调用或返回方法或引发异常时执行给定的 proc 对象。您可以使用它来制作自己的记录器并了解有关您的程序的有趣的东西...

C++ 或 boost 中是否有类似的功能?另外,这个设施一般叫什么?

谢谢!

z.

【问题讨论】:

  • 在 Ruby 中,所有调用都通过 VM 中的函数(或者 Ruby 使用的任何东西,如果不是 VM)进行路由,但在 C++ 中并非如此。

标签: c++ ruby logging


【解决方案1】:

就像 Seth 所说的那样,这种东西并不是语言直接可用的。为了在 C++ 中做类似的事情,你必须在编译期间将这种“监控代码”注入到你自己的代码中。

在 C 或 C++ 中,这通常称为 instrumentationprofiling
要了解更多信息,我建议您google it

如果您正在寻找的是一个日志记录或调试辅助框架,那么您可能想阅读此内容(这实际上是您在谷歌检测时的第二个答案):
Instrumentation (diagnostic) library for C++

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多