From 43ab48a3650a96d6351df9137e2e32a0bc95cae8 Mon Sep 17 00:00:00 2001 From: Alexander Markov Date: Wed, 10 Sep 2025 06:37:12 -0700 Subject: [PATCH] [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 Commit-Queue: Alexander Markov --- runtime/vm/kernel_binary.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/runtime/vm/kernel_binary.cc b/runtime/vm/kernel_binary.cc index 4061cedba33..48e65e4b107 100644 --- a/runtime/vm/kernel_binary.cc +++ b/runtime/vm/kernel_binary.cc @@ -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::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; }