Я пытаюсь получить стеки вызовов интерпретатора Ruby, когда он будет выполнен.Например, у меня есть некоторый код ruby в foo.rb
, и когда я выполняю его с некоторыми опциями (если они есть, чтобы получить стек вызовов) на $ruby foo.rb
, тогда я хотел бы получить, какие функции интерпретатора выполняются.
Я нашел эту (https://programmer.help/blogs/ruby-2.x-source-code-learning-an-overview-of-interpreters.html) хорошую статью, связанную с моими вопросами и дает некоторое представление о том, как мне следует подходить, но я не совсем уверен, как мне это сделать.
В принципе,в статье говорится, что «Откройте переключатель OPT_CALL_THREADED_CODE в заголовочном файле vm_opts.h при компиляции стека вызовов Ruby ruby_run_node», чтобы получить стек вызовов, но я не совсем понимаю, что означает «открытый OPT_CALL_THREADED_CODE».
Я посмотрел vm_opts.h, но он мало что говорит.
Эта проблема очень специфическая, но если у кого-то есть идеи, как я могу получить стек вызовов в любом случае или с помощью методастатья предлагает, пожалуйста, помогите мне здесь.
Спасибо за вашу помощь!