在Elixir中运行时获取字节码
有没有办法在运行时获得Elixir中模块的字节码 我能够将使用iex创建的模块的字节码保存到变量中,但我真正想做的是获取已加载模块的字节码 我查看了模块和代码函数,但没有找到我需要的。有人能给我指出正确的方向吗 这很有效在Elixir中运行时获取字节码,elixir,Elixir,有没有办法在运行时获得Elixir中模块的字节码 我能够将使用iex创建的模块的字节码保存到变量中,但我真正想做的是获取已加载模块的字节码 我查看了模块和代码函数,但没有找到我需要的。有人能给我指出正确的方向吗 这很有效 :code.get_object_code(Map) 但是,当我试图获取模块的字节码时,我写的是:“error” #输出显示模块已加载 hello :ok #用我写的模块试试看 :code.get_object_code(Hello) #输出 您可以使用Erlang的:c
:code.get_object_code(Map)
但是,当我试图获取模块的字节码时,我写的是:“error”
#输出显示模块已加载
hello
:ok
#用我写的模块试试看
:code.get_object_code(Hello)
#输出
您可以使用Erlang的
:code
模块中的函数,即:code.get\u object\u code/1
iex(3)> :code.get_object_code(:elixir)
{:elixir,
<<70, 79, 82, 49, 0, 0, 52, 64, 66, 69, ...>>,
'/usr/local/lib/elixir/bin/../lib/elixir/ebin/elixir.beam'}
iex(3)>:code.get\u object\u code(:elixir)
{:长生不老药,
,
“/usr/local/lib/elixir/bin/。/lib/elixir/ebin/elixir.beam”}
谢谢,这适用于内置的Elixir模块,我更新了我的问题,使之更加清晰。当我在iex中编写的模块上尝试时,遇到了一个错误。我发现这对我编写的模块有效,只有在iex中手动键入模块时才无效。如果我在iex中手动键入它们,我可以使用v命令获得输出。如果您找到任何解决方案,我对答案感兴趣!
:error
iex(3)> :code.get_object_code(:elixir)
{:elixir,
<<70, 79, 82, 49, 0, 0, 52, 64, 66, 69, ...>>,
'/usr/local/lib/elixir/bin/../lib/elixir/ebin/elixir.beam'}