rr / 1 "считывает определения записей из файла BEAM модуля. Если в файле BEAM нет определений записей, исходный файл находится и читается вместо него."
Я предполагаю, что абстрактная формане был включен в файл .BEAM и что в вашей установке исходные файлы недоступны.
ОБНОВЛЕНИЕ: При копировании в функцию shell:read_file_records/2
я обнаружил следующее:
read_file_records(File, Opts) ->
case filename:extension(File) of
".beam" ->
case beam_lib:chunks(File, [abstract_code,"CInf"]) of
{ok,{_Mod,[{abstract_code,{Version,Forms}},{"CInf",CB}]}} ->
case record_attrs(Forms) of
[] when Version =:= raw_abstract_v1 ->
[];
[] ->
%% If the version is raw_X, then this test
%% is unnecessary.
try_source(File, CB);
Records ->
Records
end;
{ok,{_Mod,[{abstract_code,no_abstract_code},{"CInf",CB}]}} ->
try_source(File, CB);
Error ->
%% Could be that the "Abst" chunk is missing (pre R6).
Error
end;
_ ->
parse_file(File, Opts)
end.
Похоже, что если отсутствует блок "Abst", он даже не пытается прочитать исходный код.Что beam_lib:chunks(File, [abstract_code,"CInf"])
возвращает для вас?Какую версию Erlang вы используете?