#   Copyright (C) 2021-2026 Free Software Foundation, Inc.
#
# This file 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 of the License, 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; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.
#
# Specify which classes of compiler commentary will be shown
# with annotated source.
scc all

# Specify which classes of compiler commentary will be shown
# with annotated disassembly
dcc all:src

# Set the default function-list metrics
# for heap data, show inclusive leaks and bytes leaked; not allocations
dmetrics i.heapleakbytes:e!heapleakbytes
dmetrics i.heapleakcnt:e!heapleakcnt
dmetrics i.heapallocbytes:e!heapallocbytes
dmetrics i.heapalloccnt:e!heapalloccnt:

# Clock profiling data
#   Note: use same display order of LMS_* in: er.rc, TimelineVariable.java, 
#     Ovw_data.h, BaseMetricTreeNode.cc and Experiment.cc metric registration
dmetrics i!total:e!.total
#   Show total cpu time
dmetrics ei%.totalcpu
dmetrics i!.user:e!.user
dmetrics i!system:e!.system
dmetrics i!trap:e!.trap
dmetrics i!lock:e!.lock
dmetrics i!datapfault:e!.datapfault
dmetrics i!textpfault:e!.textpfault
dmetrics i!kernelpfault:e!.kernelpfault
dmetrics i!stop:e!.stop
dmetrics i!wait:e!.wait
dmetrics i!sleep:e!.sleep

# for kernel clock profiling data, show inclusive and exclusive KCPU
dmetrics ei.kcpu
###dmetrics ie.kcpu

# for count data, show exclusive metrics only
dmetrics i!bit:e.bit

# for er_generic data, show exclusive metrics only
dmetrics i!icount:e.icount

# Hide implementation hack. Functionmark column only serves
# to force zero-count functions to be displayed.
dmetrics e!bit_FM

# for kernel profiles, show inclusive and exclusive kucycles and kcycles
# (kucycles and kcycles are for 12.3 and older experiments, Obsolete TBR)
dmetrics ei.kucycles:ei.kcycles
###dmetrics ie.kucycles:ie.kcycles

# for derived HWC metrics, show exclusive only
dmetrics i!IPC:e!.IPC
dmetrics i!CPI:e!.CPI
dmetrics i!K_IPC:e!.K_IPC
dmetrics i!K_CPI:e!.K_CPI

# for HWC, show exclusive only
dmetrics i!hwc:e%.hwc

# for synctrace, show inclusive only
dmetrics i.sync:e!sync
dmetrics i.syncn:e!syncn

# Set the default function-list metrics for OMP profiling
dmetrics i.ompwork:e!ompwork
dmetrics i.ompwait:e!ompwait
dmetrics i!.masterthread:e!.masterthread

#set the default function-list metrics for deadlock detection
dmetrics i!deadlocks:e.deadlocks

# io data
dmetrics i.ioreadtime:e!ioreadtime
dmetrics i.iowritetime:e!iowritetime
dmetrics i.ioothertime:e!ioothertime
dmetrics i.ioerrortime:e!ioerrortime
dmetrics i!.ioreadcnt:e!ioreadcnt
dmetrics i!.ioreadbytes:e!ioreadbytes
dmetrics i!.iowritecnt:e!iowritecnt
dmetrics i!.iowritebytes:e!iowritebytes
dmetrics i!.ioothercnt:e!ioothercnt
dmetrics i!.ioerrorcnt:e!ioerrorcnt

# for any other unnamed metrics, don't show them
dmetrics ie!.any

# don't show size or address; show name
dmetrics !size:!address:name

# Select the default function-list sorting metric
dsort ei.any:name
###dsort ie.any:name

# Set function name style
name long

# Set View mode to user
viewmode user

# Set compare mode
compare off

# Set enabling descendants to on
en_desc on

# Set path where the gprofng libraries are installed
preload_libdirs ../lib:../lib32:../lib64

# Add search path for annotated source and disasm
addpath $expts:.

# Add controls for specific load objects
#  object_hide <Unknown>

# gprofng GUI tabs
tabs dsrc:function:timeline:processes:threads:ctree:callflame:src:dis:leaks:ioactivity:ifreq:callers-callees:header

