我正在尝试执行Ruby解释器的调用堆栈。例如,我在foo.rb
中有一些ruby代码,当我使用$ruby foo.rb
的一些选项(如果有的话,以获取调用堆栈)执行代码时,我想获取解释器的哪些函数被执行
我发现这篇(https://programmer.help/blogs/ruby-2.x-source-code-learning-an-overview-of-interpreters.html)不错的文章与我的问题有关,并提供了一些有关如何处理的想法,但我不太确定该怎么做。
基本上,文章是说“在编译Ruby时在vm_opts.h头文件中打开OPT_CALL_THREADED_CODE开关 ruby_run_node调用堆栈”来获取调用堆栈,但我并没有真正理解“打开OPT_CALL_THREADED_CODE”的含义。
我确实看过vm_opts.h,但是并不能说明什么。
这个问题是一个非常具体的主题,但是如果任何人有任何想法我无论如何都可以通过本文建议的方法或使用本文建议的方法来获取调用堆栈,请在这里为我提供帮助。
谢谢您的帮助!