mem_trace.cc (12189:18937fe3cc31) | mem_trace.cc (12191:402368e3ca19) |
---|---|
1/* 2 * Copyright (c) 2015 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 30 unchanged lines hidden (view full) --- 39 */ 40 41#include "mem/probes/mem_trace.hh" 42 43#include "base/callback.hh" 44#include "base/output.hh" 45#include "params/MemTraceProbe.hh" 46#include "proto/packet.pb.h" | 1/* 2 * Copyright (c) 2015 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 30 unchanged lines hidden (view full) --- 39 */ 40 41#include "mem/probes/mem_trace.hh" 42 43#include "base/callback.hh" 44#include "base/output.hh" 45#include "params/MemTraceProbe.hh" 46#include "proto/packet.pb.h" |
47#include "sim/system.hh" |
|
47 48MemTraceProbe::MemTraceProbe(MemTraceProbeParams *p) 49 : BaseMemProbe(p), 50 traceStream(nullptr), | 48 49MemTraceProbe::MemTraceProbe(MemTraceProbeParams *p) 50 : BaseMemProbe(p), 51 traceStream(nullptr), |
52 system(p->system), |
|
51 withPC(p->with_pc) 52{ 53 std::string filename; 54 if (p->trace_file != "") { 55 // If the trace file is not specified as an absolute path, 56 // append the current simulation output directory 57 filename = simout.resolve(p->trace_file); 58 --- 8 unchanged lines hidden (view full) --- 67 // Generate a filename from the name of the SimObject. Append .trc 68 // and .gz if we want compression enabled. 69 filename = simout.resolve(name() + ".trc" + 70 (p->trace_compress ? ".gz" : "")); 71 } 72 73 traceStream = new ProtoOutputStream(filename); 74 | 53 withPC(p->with_pc) 54{ 55 std::string filename; 56 if (p->trace_file != "") { 57 // If the trace file is not specified as an absolute path, 58 // append the current simulation output directory 59 filename = simout.resolve(p->trace_file); 60 --- 8 unchanged lines hidden (view full) --- 69 // Generate a filename from the name of the SimObject. Append .trc 70 // and .gz if we want compression enabled. 71 filename = simout.resolve(name() + ".trc" + 72 (p->trace_compress ? ".gz" : "")); 73 } 74 75 traceStream = new ProtoOutputStream(filename); 76 |
77 // Register a callback to compensate for the destructor not 78 // being called. The callback forces the stream to flush and 79 // closes the output file. 80 registerExitCallback( 81 new MakeCallback<MemTraceProbe, &MemTraceProbe::closeStreams>(this)); 82} 83 84void 85MemTraceProbe::startup() 86{ |
|
75 // Create a protobuf message for the header and write it to 76 // the stream 77 ProtoMessage::PacketHeader header_msg; 78 header_msg.set_obj_id(name()); 79 header_msg.set_tick_freq(SimClock::Frequency); | 87 // Create a protobuf message for the header and write it to 88 // the stream 89 ProtoMessage::PacketHeader header_msg; 90 header_msg.set_obj_id(name()); 91 header_msg.set_tick_freq(SimClock::Frequency); |
80 traceStream->write(header_msg); | |
81 | 92 |
82 // Register a callback to compensate for the destructor not 83 // being called. The callback forces the stream to flush and 84 // closes the output file. 85 registerExitCallback( 86 new MakeCallback<MemTraceProbe, &MemTraceProbe::closeStreams>(this)); | 93 for (int i = 0; i < system->maxMasters(); i++) { 94 auto id_string = header_msg.add_id_strings(); 95 id_string->set_key(i); 96 id_string->set_value(system->getMasterName(i)); 97 } 98 99 traceStream->write(header_msg); |
87} 88 89void 90MemTraceProbe::closeStreams() 91{ 92 if (traceStream != NULL) 93 delete traceStream; 94} --- 24 unchanged lines hidden --- | 100} 101 102void 103MemTraceProbe::closeStreams() 104{ 105 if (traceStream != NULL) 106 delete traceStream; 107} --- 24 unchanged lines hidden --- |