70 const std::string divider =
71 "**********************************************************\n";
74 if (!cp.
find(section,
"version_tags", str)) {
76 warn(
"!!!! Checkpoint uses an old versioning scheme. !!!!\n");
77 warn(
"Run the checkpoint upgrader (util/cpt_upgrader.py) on your "
83 std::set<std::string> cpt_tags;
88 if (cpt_tags.find(
t) == cpt_tags.end()) {
93 "!!! Checkpoint is missing the following version tags:\n");
100 warn(
"You might experience some issues when restoring and should run "
101 "the checkpoint upgrader (util/cpt_upgrader.py) on your "
107 for (
const auto&
t : cpt_tags) {
112 warn(
"!!!! gem5 is missing the following version tags:\n");
119 warn(
"Running a checkpoint with incompatible version tags is not "
120 "supported. While it might work, you may experience incorrect "
121 "behavior or crashes.\n");
void serialize(CheckpointOut &cp) const override
Serialize an object.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
bool find(const std::string §ion, const std::string &entry, std::string &value)
static const std::string & currentSection()
Gets the fully-qualified name of the active section.
#define SERIALIZE_CONTAINER(member)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::set< std::string > version_tags
The version tags for this build of the simulator, to be stored in the Globals section during serializ...
Tick curTick()
The universal simulation clock.
std::ostream CheckpointOut
void paramOut(CheckpointOut &cp, const std::string &name, ExtMachInst const &machInst)
void paramIn(CheckpointIn &cp, const std::string &name, ExtMachInst &machInst)
void arrayParamIn(CheckpointIn &cp, const std::string &name, CircleBuf< T > ¶m)