gpt4 book ai didi

erlang - 如何知道 .beam 文件是否使用 debug_info 编译?

转载 作者:行者123 更新时间:2023-12-01 18:28:17 26 4
gpt4 key购买 nike

我发现我需要使用 debug_info 参数编译 .erl 文件,以便可以在调试器中对其进行调试。

当我尝试在调试器中调试 .beam 文件时,我总是看到该文件没有调试信息并且无法打开。

** Invalid beam file or no abstract code: "/erlang-debug/myapp.beam"

我怀疑可能是我以错误的方式编译了文件。我尝试了所有可能的方法,但仍然没有运气,我觉得文件是在没有 debug_info 的情况下编译的。

Erlang documentation page 中提到了我使用的最简单的示例之一。 :

% erlc +debug_info module.erl

有没有办法知道某些特定的 .beam 文件是否使用 debug_info 编译?

最佳答案

您可以使用 module_info 函数访问所有编译选项。要对调试信息标志进行测试,可以使用 proplists 函数提取信息:

1> O = fun(M) ->               
1> Comp = M:module_info(compile),
1> Options = proplists:get_value(options,Comp),
1> proplists:get_value(debug_info,Options)
1> end.
#Fun<erl_eval.6.50752066>
2> c(p564).
{ok,p564}
3> O(p564).
undefined
4> c(p564,[debug_info]).
{ok,p564}
5> O(p564).
true
6>

关于erlang - 如何知道 .beam 文件是否使用 debug_info 编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38423230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com