diff options
author | Björn Gustavsson <[email protected]> | 2011-10-31 14:00:42 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-11-02 11:59:06 +0100 |
commit | 82e41d4b3a57774a23a57d345637a0e19e8727d0 (patch) | |
tree | 1e40d97d62049e0612930521a5a478acff5e0e4c | |
parent | 9a6ad15ba103ec7aee2da66f59e371bd863f410c (diff) | |
download | otp-82e41d4b3a57774a23a57d345637a0e19e8727d0.tar.gz otp-82e41d4b3a57774a23a57d345637a0e19e8727d0.tar.bz2 otp-82e41d4b3a57774a23a57d345637a0e19e8727d0.zip |
beam_load.c: Clarify error message when loading unsupported BEAM files
Make it clear for the user what has happened and how to fix it when
an attempt is made to load a BEAM file containing new instructions
that the current run-time system cannot handle.
Suggested-by: Thomas Lindgren
-rw-r--r-- | erts/emulator/beam/beam_load.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c index de4b32b238..57f5ad0a62 100644 --- a/erts/emulator/beam/beam_load.c +++ b/erts/emulator/beam/beam_load.c @@ -1570,10 +1570,15 @@ read_code_header(LoaderState* stp) /* * Verify the number of the highest opcode used. */ - GetInt(stp, 4, opcode_max); if (opcode_max > MAX_GENERIC_OPCODE) { - LoadError2(stp, "use of opcode %d; this emulator supports only up to %d", + LoadError2(stp, + "This BEAM file was compiled for a later version" + " of the run-time system than " ERLANG_OTP_RELEASE ".\n" + " To fix this, please recompile this module with an " + ERLANG_OTP_RELEASE " compiler.\n" + " (Use of opcode %d; this emulator supports " + "only up to %d.)", opcode_max, MAX_GENERIC_OPCODE); } |