[vm] Improve error message 'Invalid kernel binary format version'

Add expected and actual kernel format versions to the error message.

TEST=manual run 'dart incompatible.dill'
Fixes https://github.com/dart-lang/sdk/issues/46938

Change-Id: I2e7ecde5558e3f62a78beab37cbcf51fd495d7c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/449021
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
Alexander Markov
2025-09-10 06:37:12 -07:00
committed by Commit Queue
parent cc14696646
commit 43ab48a365
+5 -2
View File
@@ -68,7 +68,8 @@ const char* kKernelInvalidFilesize =
"File size is too small to be a valid kernel file";
const char* kKernelInvalidMagicIdentifier = "Invalid magic identifier";
const char* kKernelInvalidBinaryFormatVersion =
"Invalid kernel binary format version";
"Invalid kernel binary format version (expected %" Pu32 ", found %" Pu32
")";
const char* kKernelInvalidSizeIndicated =
"Invalid kernel binary: Indicated size is invalid";
const char* kKernelInvalidSdkHash = "Invalid SDK hash";
@@ -119,7 +120,9 @@ std::unique_ptr<Program> Program::ReadFrom(Reader* reader, const char** error) {
const uint32_t format_version = reader->ReadUInt32();
if (format_version != kSupportedKernelFormatVersion) {
if (error != nullptr) {
*error = kKernelInvalidBinaryFormatVersion;
*error = OS::SCreate(Thread::Current()->zone(),
kKernelInvalidBinaryFormatVersion,
kSupportedKernelFormatVersion, format_version);
}
return nullptr;
}