Wolfgang Thallergcc16 merge934c3885 months agoHistory
158 lines · 3.8 KB · C
RawDownload
/* Copyright (C) 2021-2026 Free Software Foundation, Inc.   Contributed by Oracle.    This file is part of GNU Binutils.    This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 3, or (at your option)   any later version.    This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.    You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, 51 Franklin Street - Fifth Floor, Boston,   MA 02110-1301, USA.  */ #ifndef _EXP_LAYOUT_H#define _EXP_LAYOUT_H #include <sys/time.h>#include <sys/types.h> #include "dbe_types.h"#include "gp-experiment.h"#include "data_pckts.h"#include "ABS.h"#include "Data_window.h"#include "Histable.h"#include "vec.h" class PrUsage{public:  PrUsage ();  PrUsage *bind32 (void *p, bool need_swap_endian);  PrUsage *bind64 (void *p, bool need_swap_endian);  static uint64_t bind32Size ();  static uint64_t bind64Size ();  Vector<long long> * getMstateValues ();   hrtime_t pr_tstamp;  hrtime_t pr_create;  hrtime_t pr_term;  hrtime_t pr_rtime;   // the following correspond to PROP_MSTATE LMS_* offsets; see newMstateVec()  hrtime_t pr_utime;  hrtime_t pr_stime;  hrtime_t pr_ttime;  hrtime_t pr_tftime;  hrtime_t pr_dftime;  hrtime_t pr_kftime;  hrtime_t pr_ltime;  hrtime_t pr_slptime;  hrtime_t pr_wtime;  hrtime_t pr_stoptime;   uint64_t pr_minf;  uint64_t pr_majf;  uint64_t pr_nswap;  uint64_t pr_inblk;  uint64_t pr_oublk;  uint64_t pr_msnd;  uint64_t pr_mrcv;  uint64_t pr_sigs;  uint64_t pr_vctx;  uint64_t pr_ictx;  uint64_t pr_sysc;  uint64_t pr_ioch;}; class DataView;extern void *getStack (VMode, DataView*, long);extern int stackSize (VMode, DataView*, long);extern Histable *getStackPC (int, VMode, DataView*, long);extern Vector<Histable*> *getStackPCs (VMode, DataView*, long); class CommonPacket // use only for RacePacket, please{public:  CommonPacket ();  void *getStack (VMode);  Histable *getStackPC (int, VMode);  Vector<Histable*>*getStackPCs (VMode);  static int cmp (const void *a, const void *b);   enum Tag_type  { LWP, THR, CPU };  static const int NTAGS = 3;  uint32_t tags[NTAGS];         // lwp_id, thr_id, cpu_id  hrtime_t tstamp;  struct JThread *jthread_TBR;  // pointer to JThread or NULL  uint64_t frinfo;              // frame info  Vaddr leafpc;                 // raw leaf PC if availabe  void *nat_stack;              // native stack  void *user_stack;             // user stack (Java, OMP, etc.)  static void *jvm_overhead;}; class FramePacket{public:  int  stackSize (bool java = false)  {    return java ? jstack->size () / 2 : stack->size ();  }   Vaddr  getFromStack (int n)  {    return stack->fetch (n);  }   Vaddr  getMthdFromStack (int n)  {    return jstack->fetch (2 * n + 1);  }   int  getBciFromStack (int n)  {    return (int) jstack->fetch (2 * n);  }   bool  isLeafMark (int n)  {    return stack->fetch (n) == (Vaddr) SP_LEAF_CHECK_MARKER;  }   bool  isTruncatedStack (bool java = false)  {    return java ? jtruncated : truncated == (Vaddr) SP_TRUNC_STACK_MARKER;  }   bool  isFailedUnwindStack ()  {    return truncated == (Vaddr) SP_FAILED_UNWIND_MARKER;  }  uint32_t omp_state; // OpenMP thread state  uint32_t mpi_state; // MPI state  uint64_t omp_cprid; // OpenMP parallel region id (omptrace)  Vector<Vaddr> *stack;  Vaddr truncated;  Vector<Vaddr> *jstack;  bool jtruncated;  Vector<Vaddr> *ompstack;  Vaddr omptruncated;}; #endif /* _EXP_LAYOUT_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t