How to get the compiled method the is being execut

2019-05-10 01:57发布

问题:

How to get an instance of CompiledMethod that is currently being executed?

i.e.

someMethod
  | thisMethod |
  thisMethod := "here I want to access an instance of _CompiledMethod_ that refers to #someMethod".
  ^ thisMethod selector

回答1:

Method that is currently being executed can be retrieved by #method message from current context, which can be accessed through thisContext pseudo variable.

This way example code will look like this:

someMethod
  | thisMethod |
  thisMethod := thisContext method.
  ^ thisMethod selector