From 26e888965d08486aeed7ebb3ef934ceb1a38cd6f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 24 Apr 2019 16:55:57 -0700 Subject: [PATCH] x86: Fix some style issues in stacktrace.cc. De-indent the X86ISA namespace, and wrap some overly long lines. Change-Id: I01a6b66a1cf721e16e4ed4dd1c3469ee112e9177 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18368 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- src/arch/x86/stacktrace.cc | 294 +++++++++++++++++++------------------ 1 file changed, 153 insertions(+), 141 deletions(-) diff --git a/src/arch/x86/stacktrace.cc b/src/arch/x86/stacktrace.cc index ca2a691b4..70285e142 100644 --- a/src/arch/x86/stacktrace.cc +++ b/src/arch/x86/stacktrace.cc @@ -44,179 +44,191 @@ using namespace std; namespace X86ISA { - ProcessInfo::ProcessInfo(ThreadContext *_tc) - : tc(_tc) - { - Addr addr = 0; - FSTranslatingPortProxy &vp = tc->getVirtProxy(); +ProcessInfo::ProcessInfo(ThreadContext *_tc) + : tc(_tc) +{ + Addr addr = 0; - if (!tc->getSystemPtr()->kernelSymtab->findAddress("thread_info_size", addr)) - panic("thread info not compiled into kernel\n"); - thread_info_size = vp.readGtoH(addr); + FSTranslatingPortProxy &vp = tc->getVirtProxy(); - if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_size", addr)) - panic("thread info not compiled into kernel\n"); - task_struct_size = vp.readGtoH(addr); + if (!tc->getSystemPtr()->kernelSymtab->findAddress( + "thread_info_size", addr)) { + panic("thread info not compiled into kernel\n"); + } + thread_info_size = vp.readGtoH(addr); - if (!tc->getSystemPtr()->kernelSymtab->findAddress("thread_info_task", addr)) - panic("thread info not compiled into kernel\n"); - task_off = vp.readGtoH(addr); + if (!tc->getSystemPtr()->kernelSymtab->findAddress( + "task_struct_size", addr)) { + panic("thread info not compiled into kernel\n"); + } + task_struct_size = vp.readGtoH(addr); - if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_pid", addr)) - panic("thread info not compiled into kernel\n"); - pid_off = vp.readGtoH(addr); + if (!tc->getSystemPtr()->kernelSymtab->findAddress( + "thread_info_task", addr)) { + panic("thread info not compiled into kernel\n"); + } + task_off = vp.readGtoH(addr); - if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_comm", addr)) - panic("thread info not compiled into kernel\n"); - name_off = vp.readGtoH(addr); + if (!tc->getSystemPtr()->kernelSymtab->findAddress( + "task_struct_pid", addr)) { + panic("thread info not compiled into kernel\n"); } + pid_off = vp.readGtoH(addr); - Addr - ProcessInfo::task(Addr ksp) const - { - Addr base = ksp & ~0x3fff; - if (base == ULL(0xfffffc0000000000)) - return 0; + if (!tc->getSystemPtr()->kernelSymtab->findAddress( + "task_struct_comm", addr)) { + panic("thread info not compiled into kernel\n"); + } + name_off = vp.readGtoH(addr); +} - Addr tsk; +Addr +ProcessInfo::task(Addr ksp) const +{ + Addr base = ksp & ~0x3fff; + if (base == ULL(0xfffffc0000000000)) + return 0; - FSTranslatingPortProxy &vp = tc->getVirtProxy(); - tsk = vp.readGtoH(base + task_off); + Addr tsk; - return tsk; - } + FSTranslatingPortProxy &vp = tc->getVirtProxy(); + tsk = vp.readGtoH(base + task_off); - int - ProcessInfo::pid(Addr ksp) const - { - Addr task = this->task(ksp); - if (!task) - return -1; + return tsk; +} - uint16_t pd; +int +ProcessInfo::pid(Addr ksp) const +{ + Addr task = this->task(ksp); + if (!task) + return -1; - FSTranslatingPortProxy &vp = tc->getVirtProxy(); - pd = vp.readGtoH(task + pid_off); + uint16_t pd; - return pd; - } + FSTranslatingPortProxy &vp = tc->getVirtProxy(); + pd = vp.readGtoH(task + pid_off); - string - ProcessInfo::name(Addr ksp) const - { - Addr task = this->task(ksp); - if (!task) - return "console"; + return pd; +} - char comm[256]; - CopyStringOut(tc, comm, task + name_off, sizeof(comm)); - if (!comm[0]) - return "startup"; +string +ProcessInfo::name(Addr ksp) const +{ + Addr task = this->task(ksp); + if (!task) + return "console"; - return comm; - } + char comm[256]; + CopyStringOut(tc, comm, task + name_off, sizeof(comm)); + if (!comm[0]) + return "startup"; - StackTrace::StackTrace() - : tc(0), stack(64) - { - } + return comm; +} - StackTrace::StackTrace(ThreadContext *_tc, const StaticInstPtr &inst) - : tc(0), stack(64) - { - trace(_tc, inst); - } +StackTrace::StackTrace() + : tc(0), stack(64) +{ +} - StackTrace::~StackTrace() - { - } +StackTrace::StackTrace(ThreadContext *_tc, const StaticInstPtr &inst) + : tc(0), stack(64) +{ + trace(_tc, inst); +} - void - StackTrace::trace(ThreadContext *_tc, bool is_call) - { - } +StackTrace::~StackTrace() +{ +} - bool - StackTrace::isEntry(Addr addr) - { - return false; - } +void +StackTrace::trace(ThreadContext *_tc, bool is_call) +{ +} - bool - StackTrace::decodeStack(MachInst inst, int &disp) - { - disp = 0; - return true; - } +bool +StackTrace::isEntry(Addr addr) +{ + return false; +} - bool - StackTrace::decodeSave(MachInst inst, int ®, int &disp) - { - reg = 0; - disp = 0; - return true; - } +bool +StackTrace::decodeStack(MachInst inst, int &disp) +{ + disp = 0; + return true; +} - /* - * Decode the function prologue for the function we're in, and note - * which registers are stored where, and how large the stack frame is. - */ - bool - StackTrace::decodePrologue(Addr sp, Addr callpc, Addr func, - int &size, Addr &ra) - { - size = 0; - ra = 0; - - for (Addr pc = func; pc < callpc; pc += sizeof(MachInst)) { - MachInst inst; - CopyOut(tc, (uint8_t *)&inst, pc, sizeof(MachInst)); - - int reg, disp; - if (decodeStack(inst, disp)) { - if (size) { - // panic("decoding frame size again"); - return true; - } - size += disp; - } else if (decodeSave(inst, reg, disp)) { - if (!ra && reg == ReturnAddressReg) { - CopyOut(tc, (uint8_t *)&ra, sp + disp, sizeof(Addr)); - if (!ra) { - // panic("no return address value pc=%#x\n", pc); - return false; - } +bool +StackTrace::decodeSave(MachInst inst, int ®, int &disp) +{ + reg = 0; + disp = 0; + return true; +} + +/* + * Decode the function prologue for the function we're in, and note + * which registers are stored where, and how large the stack frame is. + */ +bool +StackTrace::decodePrologue(Addr sp, Addr callpc, Addr func, + int &size, Addr &ra) +{ + size = 0; + ra = 0; + + for (Addr pc = func; pc < callpc; pc += sizeof(MachInst)) { + MachInst inst; + CopyOut(tc, (uint8_t *)&inst, pc, sizeof(MachInst)); + + int reg, disp; + if (decodeStack(inst, disp)) { + if (size) { + // panic("decoding frame size again"); + return true; + } + size += disp; + } else if (decodeSave(inst, reg, disp)) { + if (!ra && reg == ReturnAddressReg) { + CopyOut(tc, (uint8_t *)&ra, sp + disp, sizeof(Addr)); + if (!ra) { + // panic("no return address value pc=%#x\n", pc); + return false; } } } - - return true; } + return true; +} + #if TRACING_ON - void - StackTrace::dump() - { - StringWrap name(tc->getCpuPtr()->name()); - SymbolTable *symtab = tc->getSystemPtr()->kernelSymtab; - - DPRINTFN("------ Stack ------\n"); - - string symbol; - for (int i = 0, size = stack.size(); i < size; ++i) { - Addr addr = stack[size - i - 1]; - if (addr == user) - symbol = "user"; - else if (addr == console) - symbol = "console"; - else if (addr == unknown) - symbol = "unknown"; - else - symtab->findSymbol(addr, symbol); - - DPRINTFN("%#x: %s\n", addr, symbol); - } +void +StackTrace::dump() +{ + StringWrap name(tc->getCpuPtr()->name()); + SymbolTable *symtab = tc->getSystemPtr()->kernelSymtab; + + DPRINTFN("------ Stack ------\n"); + + string symbol; + for (int i = 0, size = stack.size(); i < size; ++i) { + Addr addr = stack[size - i - 1]; + if (addr == user) + symbol = "user"; + else if (addr == console) + symbol = "console"; + else if (addr == unknown) + symbol = "unknown"; + else + symtab->findSymbol(addr, symbol); + + DPRINTFN("%#x: %s\n", addr, symbol); } +} + #endif } -- 2.30.2