C++ 中是不是有类似于 ruby​​ 的 set_trace_function 的工具?

Posted

技术标签:

【中文标题】C++ 中是不是有类似于 ruby​​ 的 set_trace_function 的工具?【英文标题】: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++ 中并非如此。 【参考方案1】:

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

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

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

【讨论】:

以上是关于C++ 中是不是有类似于 ruby​​ 的 set_trace_function 的工具?的主要内容,如果未能解决你的问题,请参考以下文章

ruby 中是不是有适用于 ISO 8601 的综合库/模块?

Python中是不是有类似于C++ STL map的结构?

我们在 C 或 C++ 中是不是有类似于 IPC::Open3 的 perl

Ruby 枚举是不是有 `with_self` 或类似的块?

Swift中类似C++和ruby中的final机制

java是不是有类似于C#属性的东西? [复制]