base: Add support for changing output directories
This changeset adds support for changing the simulator output directory. This can be useful when the simulation goes through several stages (e.g., a warming phase, a simulation phase, and a verification phase) since it allows the output from each stage to be located in a different directory. Relocation is done by calling core.setOutputDir() from Python or simout.setOutputDirectory() from C++. This change affects several parts of the design of the gem5's output subsystem. First, files returned by an OutputDirectory instance (e.g., simout) are of the type OutputStream instead of a std::ostream. This allows us to do some more book keeping and control re-opening of files when the output directory is changed. Second, new subdirectories are OutputDirectory instances, which should be used to create files in that sub-directory. Signed-off-by: Andreas Sandberg <andreas@sandberg.pp.se> [sascha.bischoff@arm.com: Rebased patches onto a newer gem5 version] Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com> Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
@@ -38,12 +38,12 @@
|
||||
inline void
|
||||
output(const char *filename)
|
||||
{
|
||||
std::ostream *file_stream = simout.find(filename);
|
||||
OutputStream *file_stream = simout.find(filename);
|
||||
|
||||
if (!file_stream)
|
||||
file_stream = simout.create(filename);
|
||||
|
||||
Trace::setDebugLogger(new Trace::OstreamLogger(*file_stream));
|
||||
Trace::setDebugLogger(new Trace::OstreamLogger(*file_stream->stream()));
|
||||
}
|
||||
|
||||
inline void
|
||||
|
||||
Reference in New Issue
Block a user