Re: Problem building plt to dialyzer

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem building plt to dialyzer

Kelly McLaughlin
I'm having some issues that seem related to your problem. I don't have a good solution for you, but I'll add some details about my problems to the thread.

I'm running Arch Linux and I I've been using erlang 18.3 from a custom build instead of the Arch package. As of about a month ago, everything was fine including dialyzer and xref. I didn't do any work with erlang for about a month and went back to it this week and found that I could no longer get dialyzer or xref to work. I get complaints about missing debug_info like this:

===> Error in dialyzing apps: Could not get abstract code for file: /home/kelly/erlang/18.3-64/lib/erlang/lib/compiler-6.0.3/ebin/beam_disasm.beam (please recompile it with +debug_info)

But the module_info disagrees that debug_info is not present:

1> beam_disasm:module_info().
[{module,beam_disasm},
 {exports,[{function__code,1},
           {format_error,1},
           {file,1},
           {module_info,0},
           {module_info,1}]},
 {attributes,[{vsn,[161664284732293947572238212319246115161]},
              {author,"Kostis Sagonas"}]},
 {compile,[{options,[{outdir,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/../ebin"},
                     {i,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/../../stdlib/include"},
                     {i,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/."},
                     warnings_as_errors,warn_unused_import,inline,debug_info]},

Meanwhile our build machine running Debian 8 and also using erlang 18.3 is still able to run dialyzer just fine. This makes me think it's likely an issue with a system package that may have advanced on Arch and included some changes that cause this problem.

I've tried other versions of erlang as well with the same results. I unpacked some versions of 18.3 from the esl debian packages and using them got the same debug_info error. I wiped out my 18.3 PLT files trying to get things working, but I still had some 18.2.1 PLT files. I built a version of 18.2.1, but dialyzer thinks the files are invalid and if I move them out of the way then I am back to the debug_info errors.

1> dialyzer:plt_info("rebar3_18.2.1_plt").
{error,not_valid}

If I copy that same PLT file to our Debian build machine and do the same the file seems fine:

1> dialyzer:plt_info("rebar3_18.2.1_plt").
{ok,[{files,["/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_a.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_asm.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_block.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_bool.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin
...

Any thoughts or ideas on this are appreciated. Thanks!


Hi,

I've installed erlang 19.2 from source code on my Gentoo Linux and I'm not
able to build plt to dialyzer. It gives me the above error. The build was
configured with --without-javac --prefix=/usr

dialyzer --build_plt --apps kernel

dialyzer: Could not get abstract code for file:
/usr/lib/erlang/lib/kernel-5.1.1/ebin/disk_log.beam (please recompile it
with +debug_info)

I've also tried entering on erts/emulator and running make debug and tried
to set ERL_COMPILE_FLAGS="+debug_info" with no luck.

I don't know if it is an issue with gentoo (both my gentoo machines have
the same problem) because I have the same issue using portage and evm to
install it.

Thank you!

--
Michel Almada de Castro Boaventura
Analista de Sistemas
Laborat?rio de Software Livre - LSL
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170116/6d5b2792/attachment-0001.html>



_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem building plt to dialyzer

Michel Boaventura
Hi Kelly,

This turns out to be an issue with erlang and zlib > 1.2.8:


You can either downgrade zlib or apply the patch provided on the link.

Cheers

Em 26 de jan de 2017 17:27, "Kelly McLaughlin" <[hidden email]> escreveu:
I'm having some issues that seem related to your problem. I don't have a good solution for you, but I'll add some details about my problems to the thread.

I'm running Arch Linux and I I've been using erlang 18.3 from a custom build instead of the Arch package. As of about a month ago, everything was fine including dialyzer and xref. I didn't do any work with erlang for about a month and went back to it this week and found that I could no longer get dialyzer or xref to work. I get complaints about missing debug_info like this:

===> Error in dialyzing apps: Could not get abstract code for file: /home/kelly/erlang/18.3-64/lib/erlang/lib/compiler-6.0.3/ebin/beam_disasm.beam (please recompile it with +debug_info)

But the module_info disagrees that debug_info is not present:

1> beam_disasm:module_info().
[{module,beam_disasm},
 {exports,[{function__code,1},
           {format_error,1},
           {file,1},
           {module_info,0},
           {module_info,1}]},
 {attributes,[{vsn,[161664284732293947572238212319246115161]},
              {author,"Kostis Sagonas"}]},
 {compile,[{options,[{outdir,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/../ebin"},
                     {i,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/../../stdlib/include"},
                     {i,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/."},
                     warnings_as_errors,warn_unused_import,inline,debug_info]},

Meanwhile our build machine running Debian 8 and also using erlang 18.3 is still able to run dialyzer just fine. This makes me think it's likely an issue with a system package that may have advanced on Arch and included some changes that cause this problem.

I've tried other versions of erlang as well with the same results. I unpacked some versions of 18.3 from the esl debian packages and using them got the same debug_info error. I wiped out my 18.3 PLT files trying to get things working, but I still had some 18.2.1 PLT files. I built a version of 18.2.1, but dialyzer thinks the files are invalid and if I move them out of the way then I am back to the debug_info errors.

1> dialyzer:plt_info("rebar3_18.2.1_plt").
{error,not_valid}

If I copy that same PLT file to our Debian build machine and do the same the file seems fine:

1> dialyzer:plt_info("rebar3_18.2.1_plt").
{ok,[{files,["/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_a.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_asm.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_block.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_bool.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin
...

Any thoughts or ideas on this are appreciated. Thanks!


Hi,

I've installed erlang 19.2 from source code on my Gentoo Linux and I'm not
able to build plt to dialyzer. It gives me the above error. The build was
configured with --without-javac --prefix=/usr

dialyzer --build_plt --apps kernel

dialyzer: Could not get abstract code for file:
/usr/lib/erlang/lib/kernel-5.1.1/ebin/disk_log.beam (please recompile it
with +debug_info)

I've also tried entering on erts/emulator and running make debug and tried
to set ERL_COMPILE_FLAGS="+debug_info" with no luck.

I don't know if it is an issue with gentoo (both my gentoo machines have
the same problem) because I have the same issue using portage and evm to
install it.

Thank you!

--
Michel Almada de Castro Boaventura
Analista de Sistemas
Laborat?rio de Software Livre - LSL
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170116/6d5b2792/attachment-0001.html>



_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Problem building plt to dialyzer

Kelly McLaughlin
Worked like a charm! Thanks for the tip, Michel.

On Thu, Jan 26, 2017 at 12:33 PM Michel Boaventura <[hidden email]> wrote:
Hi Kelly,

This turns out to be an issue with erlang and zlib > 1.2.8:


You can either downgrade zlib or apply the patch provided on the link.

Cheers

Em 26 de jan de 2017 17:27, "Kelly McLaughlin" <[hidden email]> escreveu:
I'm having some issues that seem related to your problem. I don't have a good solution for you, but I'll add some details about my problems to the thread.

I'm running Arch Linux and I I've been using erlang 18.3 from a custom build instead of the Arch package. As of about a month ago, everything was fine including dialyzer and xref. I didn't do any work with erlang for about a month and went back to it this week and found that I could no longer get dialyzer or xref to work. I get complaints about missing debug_info like this:

===> Error in dialyzing apps: Could not get abstract code for file: /home/kelly/erlang/18.3-64/lib/erlang/lib/compiler-6.0.3/ebin/beam_disasm.beam (please recompile it with +debug_info)

But the module_info disagrees that debug_info is not present:

1> beam_disasm:module_info().
[{module,beam_disasm},
 {exports,[{function__code,1},
           {format_error,1},
           {file,1},
           {module_info,0},
           {module_info,1}]},
 {attributes,[{vsn,[161664284732293947572238212319246115161]},
              {author,"Kostis Sagonas"}]},
 {compile,[{options,[{outdir,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/../ebin"},
                     {i,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/../../stdlib/include"},
                     {i,"/net/isildur/ldisk/daily_build/18_prebuild_opu_o.2016-03-14_21/otp_src_18/lib/compiler/src/."},
                     warnings_as_errors,warn_unused_import,inline,debug_info]},

Meanwhile our build machine running Debian 8 and also using erlang 18.3 is still able to run dialyzer just fine. This makes me think it's likely an issue with a system package that may have advanced on Arch and included some changes that cause this problem.

I've tried other versions of erlang as well with the same results. I unpacked some versions of 18.3 from the esl debian packages and using them got the same debug_info error. I wiped out my 18.3 PLT files trying to get things working, but I still had some 18.2.1 PLT files. I built a version of 18.2.1, but dialyzer thinks the files are invalid and if I move them out of the way then I am back to the debug_info errors.

1> dialyzer:plt_info("rebar3_18.2.1_plt").
{error,not_valid}

If I copy that same PLT file to our Debian build machine and do the same the file seems fine:

1> dialyzer:plt_info("rebar3_18.2.1_plt").
{ok,[{files,["/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_a.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_asm.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_block.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin/beam_bool.beam",
             "/home/kelly/erlang/18.2.1-64/lib/erlang/lib/compiler-6.0.2/ebin
...

Any thoughts or ideas on this are appreciated. Thanks!


Hi,

I've installed erlang 19.2 from source code on my Gentoo Linux and I'm not
able to build plt to dialyzer. It gives me the above error. The build was
configured with --without-javac --prefix=/usr

dialyzer --build_plt --apps kernel

dialyzer: Could not get abstract code for file:
/usr/lib/erlang/lib/kernel-5.1.1/ebin/disk_log.beam (please recompile it
with +debug_info)

I've also tried entering on erts/emulator and running make debug and tried
to set ERL_COMPILE_FLAGS="+debug_info" with no luck.

I don't know if it is an issue with gentoo (both my gentoo machines have
the same problem) because I have the same issue using portage and evm to
install it.

Thank you!

--
Michel Almada de Castro Boaventura
Analista de Sistemas
Laborat?rio de Software Livre - LSL
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170116/6d5b2792/attachment-0001.html>



_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Loading...