exetrace.cc (2654:9559cfa91b9d) | exetrace.cc (2665:a124942bacb8) |
---|---|
1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 10 unchanged lines hidden (view full) --- 19 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 10 unchanged lines hidden (view full) --- 19 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 * 28 * Authors: Steve Reinhardt 29 * Lisa Hsu 30 * Nathan Binkert 31 * Steve Raasch |
|
27 */ 28 29#include <fstream> 30#include <iomanip> 31 32#include "base/loader/symtab.hh" 33#include "cpu/base.hh" 34#include "cpu/exetrace.hh" --- 42 unchanged lines hidden (view full) --- 77 78 if (flags[PRINT_THREAD_NUM]) 79 outs << "T" << thread << " : "; 80 81 82 std::string sym_str; 83 Addr sym_addr; 84 if (debugSymbolTable | 32 */ 33 34#include <fstream> 35#include <iomanip> 36 37#include "base/loader/symtab.hh" 38#include "cpu/base.hh" 39#include "cpu/exetrace.hh" --- 42 unchanged lines hidden (view full) --- 82 83 if (flags[PRINT_THREAD_NUM]) 84 outs << "T" << thread << " : "; 85 86 87 std::string sym_str; 88 Addr sym_addr; 89 if (debugSymbolTable |
85 && debugSymbolTable->findNearestSymbol(PC, sym_str, sym_addr) 86 && flags[PC_SYMBOL]) { | 90 && debugSymbolTable->findNearestSymbol(PC, sym_str, sym_addr)) { |
87 if (PC != sym_addr) 88 sym_str += csprintf("+%d", PC - sym_addr); 89 outs << "@" << sym_str << " : "; 90 } 91 else { 92 outs << "0x" << hex << PC << " : "; 93 } 94 --- 91 unchanged lines hidden (view full) --- 186Param<bool> exe_trace_print_data(&exeTraceParams, "print_data", 187 "print result data", true); 188Param<bool> exe_trace_print_iregs(&exeTraceParams, "print_iregs", 189 "print all integer regs", false); 190Param<bool> exe_trace_print_fetchseq(&exeTraceParams, "print_fetchseq", 191 "print fetch sequence number", false); 192Param<bool> exe_trace_print_cp_seq(&exeTraceParams, "print_cpseq", 193 "print correct-path sequence number", false); | 91 if (PC != sym_addr) 92 sym_str += csprintf("+%d", PC - sym_addr); 93 outs << "@" << sym_str << " : "; 94 } 95 else { 96 outs << "0x" << hex << PC << " : "; 97 } 98 --- 91 unchanged lines hidden (view full) --- 190Param<bool> exe_trace_print_data(&exeTraceParams, "print_data", 191 "print result data", true); 192Param<bool> exe_trace_print_iregs(&exeTraceParams, "print_iregs", 193 "print all integer regs", false); 194Param<bool> exe_trace_print_fetchseq(&exeTraceParams, "print_fetchseq", 195 "print fetch sequence number", false); 196Param<bool> exe_trace_print_cp_seq(&exeTraceParams, "print_cpseq", 197 "print correct-path sequence number", false); |
194Param<bool> exe_trace_pc_symbol(&exeTraceParams, "pc_symbol", 195 "Use symbols for the PC if available", true); | |
196Param<bool> exe_trace_intel_format(&exeTraceParams, "intel_format", 197 "print trace in intel compatible format", false); 198Param<string> exe_trace_system(&exeTraceParams, "trace_system", 199 "print trace of which system (client or server)", 200 "client"); 201 202 203// --- 8 unchanged lines hidden (view full) --- 212 flags[PRINT_CYCLE] = exe_trace_print_cycle; 213 flags[PRINT_OP_CLASS] = exe_trace_print_opclass; 214 flags[PRINT_THREAD_NUM] = exe_trace_print_thread; 215 flags[PRINT_RESULT_DATA] = exe_trace_print_effaddr; 216 flags[PRINT_EFF_ADDR] = exe_trace_print_data; 217 flags[PRINT_INT_REGS] = exe_trace_print_iregs; 218 flags[PRINT_FETCH_SEQ] = exe_trace_print_fetchseq; 219 flags[PRINT_CP_SEQ] = exe_trace_print_cp_seq; | 198Param<bool> exe_trace_intel_format(&exeTraceParams, "intel_format", 199 "print trace in intel compatible format", false); 200Param<string> exe_trace_system(&exeTraceParams, "trace_system", 201 "print trace of which system (client or server)", 202 "client"); 203 204 205// --- 8 unchanged lines hidden (view full) --- 214 flags[PRINT_CYCLE] = exe_trace_print_cycle; 215 flags[PRINT_OP_CLASS] = exe_trace_print_opclass; 216 flags[PRINT_THREAD_NUM] = exe_trace_print_thread; 217 flags[PRINT_RESULT_DATA] = exe_trace_print_effaddr; 218 flags[PRINT_EFF_ADDR] = exe_trace_print_data; 219 flags[PRINT_INT_REGS] = exe_trace_print_iregs; 220 flags[PRINT_FETCH_SEQ] = exe_trace_print_fetchseq; 221 flags[PRINT_CP_SEQ] = exe_trace_print_cp_seq; |
220 flags[PC_SYMBOL] = exe_trace_pc_symbol; | |
221 flags[INTEL_FORMAT] = exe_trace_intel_format; 222 trace_system = exe_trace_system; 223} 224 225void 226ExecutionTraceParamContext::checkParams() 227{ 228 Trace::InstRecord::setParams(); 229} 230 | 222 flags[INTEL_FORMAT] = exe_trace_intel_format; 223 trace_system = exe_trace_system; 224} 225 226void 227ExecutionTraceParamContext::checkParams() 228{ 229 Trace::InstRecord::setParams(); 230} 231 |