如何获取Erlang beam文件的源代码路径?

如何获取Erlang beam文件的源代码路径?,erlang,Erlang,我有一个Erlang beam文件,我想得到这个beam的源代码的dir路径 (ppb1_bs6@esekilvxen263)3> sgnI:module_info(). [{module,sgnI}, {exports,[{get_interface_ip,3}, {get_nc_configuration_by_id,1}, {get_nc_configuration_by_id,2}, {get_n

我有一个Erlang beam文件,我想得到这个beam的源代码的dir路径

(ppb1_bs6@esekilvxen263)3> sgnI:module_info().         
[{module,sgnI},
 {exports,[{get_interface_ip,3},
           {get_nc_configuration_by_id,1},
           {get_nc_configuration_by_id,2},
           {get_nc_configuration_by_id,3},
           {possible_update_ipv6,1},
           {increase_counter,3},
           {local_media_allowed,1},
           {create_network_mapping,4},
           {create_netw_mapping,4},
           {delete_netw_mapping,3},
           {check_p_early_media_support,4},
           {ip_to_list,1},
           {get_web_access_value,2},
           {get_ice_support,2},
           {check_conf_ip_range,2},
           {get_ippbx_configuration,4},
           {session_qos_status,2},
           {update_qos_statistics,7},
           {get_mrfs,0},
           {get_nc_information_trc,3},
           {get_all_nc_trc,0},
           {transcoding_enabled,0},
           {get_network_level_codec_policy,3},
           {get_domain_level_codec_policy,...},
           {...}|...]},
 {attributes,[{id,['103/190 55-CNA 113 329 Ux']},
              {vsn,['/main/R14A/R15A/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/50']},
              {date,['2016-04-21']},
              {hrl_id,['18/190 55-CNA 113 211 Ux']},
              {hrl_vsn,['/main/R4A/R6A/R6A_1/R9B/R10A/R12A/R13A/R14A/R15A/R16A/R17A/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/16']},
              {hrl_date,['2015-10-28']},
              {hrl_id,['135/190 55-CNA 113 329 Ux']},
              {hrl_vsn,['/main/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/11']},
              {hrl_date,['2015-10-01']},
              {hrl_id,['21/190 55-CNA 113 211 Ux']},
              {hrl_vsn,['/main/R4A/R6A/R6A_1/R9B/R10A/R12A/R13A/R14A/R15A/R16A/R17A/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/29']},
              {hrl_id,['59/190 55-CNA 113 329 Ux']},
              {hrl_vsn,['/main/R13A/R14A/R15A/R16A/R17A/R18A/R19A/R21A/R22A/R23A/R24A/R99A/5']},
              {hrl_date,['2015-11-12']},
              {hrl_author,[eaeghkl]}]},
 {compile,[{options,[debug_info,
                     {outdir,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGN_CNA113329/out"},
                     {i,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGN_CNA113329/inc"},
                     {i,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGC_CXA112584/inc"},
                     {i,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGM_CNA113211/SGM_CXA112475/inc"},
                     {i,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/REG_CNA113206/REG_CXA112470/inc"},
                     {i,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SNI_CNA113330/SNI_CXA112605/inc"},
                     {i,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/DIA_CNA113193/DIA_CXA112460/inc"},
                     {i,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/CHA_CNA113194/CHA_CXA112461/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/SYF_CXA112264/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/SYS_CNA11333/SYS_CXA112238/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/OMS_CNA11344/OMS_CXA112249/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/PERF_CNA113086/PERF_CXA112373/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/EVIP_CNA113361/EVIP_CXA112623/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/SMM_CNA113305/SMM_CXA112593/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/PLC_CNA11345/PLC_CXA112250/inc"},
                     {i,"/vobs/mgwblade/SYF/SYF_CRA1190070/EQM_CNA113159/EQM_CXA112430/inc"},
                     {i,[...]},
                     {i,...},
                     {...}|...]},
           {version,"6.0.2"},
           {time,{2016,4,21,18,26,41}},
           {source,"/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGN_CNA113329/src/sgnI.erl"}]},
 {md5,<<124,118,79,184,84,57,4,46,95,153,149,41,117,11,1,
        139>>}]
(ppb1_bs6@esekilvxen263)3> sgnI:module_info()。
[{模块,sgnI},
{exports,[{get_interface_ip,3},
{get_nc_configuration_by_id,1},
{get_nc_configuration_by_id,2},
{get_nc_configuration_by_id,3},
{可能的\u更新\u ipv6,1},
{递增计数器,3},
{允许本地媒体,1},
{创建网络映射,4},
{创建网络映射,4},
{删除网络映射,3},
{检查早期媒体支持,4},
{ip_to_list,1},
{get_web_access_value,2},
{获得支持,2},
{check_conf_ip_range,2},
{get_ippbx_配置,4},
{会话状态,2},
{更新qos统计数据,7},
{get_mrfs,0},
{get_nc_information_trc,3},
{get_all_nc_trc,0},
{已启用转码,0},
{获取网络级编解码器策略,3},
{get_domain_level_codec_policy,…},
{...}|...]},
{属性,[{id,['103/190 55-CNA 113 329 Ux']},
{vsn,['/main/R14A/R15A/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/50'],
{日期,['2016-04-21']},
{hrl_id,['18/190 55-CNA 113 211 Ux']},
{hrl_vsn,['/main/R4A/R6A/R6A_1/R9B/R10A/R12A/R13A/R14A/R15A/R16A/R17A/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/16'],
{hrl_日期,['2015-10-28']},
{hrl_id,['135/190 55-CNA 113 329 Ux']},
{hrl_vsn,['/main/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/11']},
{hrl_日期,['2015-10-01']},
{hrl_id,['21/190 55-CNA 113 211 Ux']},
{hrl_vsn,['/main/R4A/R6A/R6A_1/R9B/R10A/R12A/R13A/R14A/R15A/R16A/R17A/R18A/R19A/R20A/R21A/R22A/R23A/R24A/R26A/R99A/29'],
{hrl_id,['59/190 55-CNA 113 329 Ux']},
{hrl_vsn,['/main/R13A/R14A/R15A/R16A/R17A/R18A/R19A/R21A/R22A/R23A/R24A/R99A/5']},
{hrl_日期,['2015-11-12']},
{hrl_作者,[eaeghkl]},
{compile,[{options,[debug_info,],
{outdir,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGN_CNA113329/out”,
{i,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGN_CNA113329/inc”,
{i,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGC_CXA112584/inc”,
{i,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGM_CNA113211/SGM_CXA112475/inc”,
{i,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/REG_CNA113206/REG_CXA112470/inc”,
{i,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SNI_CNA113330/SNI_CXA112605/inc”,
{i,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/DIA_CNA113193/DIA_CXA112460/inc”,
{i,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/CHA_CNA113194/CHA_CXA112461/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/SYF_cxa11264/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/SYS_cna1133/SYS_cxa11238/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/OMS_CNA11344/OMS_CXA112249/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/PERF_CNA113086/PERF_CXA112373/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/EVIP_CNA113361/EVIP_CXA112623/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/SMM_CNA113305/SMM_CXA112593/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/PLC_CNA11345/PLC_CXA112250/inc”,
{i,“/vobs/mgwblade/SYF/SYF_CRA1190070/EQM_CNA113159/EQM_CXA112430/inc”,
{i,[…]},
{i,…},
{...}|...]},
{version,“6.0.2”},
{时间,{2016,4,21,18,26,41},
{来源,“/vobs/mgwblade/SGC/SGC_CSA10105_4/SGC_CRA1190962/SGN_CNA113329/src/sgnI.erl”},
{md5,}]

我想得到
“/vobs/mgwblade/SGC/SGC\u CSA10105\u 4/SGC\u CRA1190962/SGN\u CNA113329/src/sgnI.erl”
,但是
模块信息()
似乎不是正确的方法。有其他方法吗?

没有其他更简单的方法了?如果您自己编译
beam
文件,您可以使用
-D
erlc
编译选项)或
{D,“/some/path”}将路径作为任意属性添加到该文件中
使用
compile
模块编译时。@BlackMamba您希望以什么方式使解决方案更简单?这只需两个函数调用即可获得所需的信息。没有其他更简单的方法了?如果您自己编译
beam
文件,则可以使用
-D
erlc
编译选项)或
{D,/some/path}将路径作为任意属性添加到该文件中
使用
compile
模块编译时。@BlackMamba您希望以什么方式使解决方案更简单?这只需两个函数调用即可获得所需的信息。
1> proplists:get_value(source,lists:module_info(compile)).
"/net/isildur/ldisk/daily_build/18_prebuild_master-opu_o.2015-06-23_20/otp_src_18/lib/stdlib/src/lists.erl"