Step 1: Build Dyninst and DPCL - Here is the script
to build the DPCL and Dyninst
##!/bin/tcsh
################################################################################
# DPCL/Dyninst (in directory $HYBRID)
################################################################################
setenv DYNINST_ROOT "$HYBRID/dyninst"
if ((`uname` == "Linux") && (`uname -m` == "ia64")) then
setenv PLATFORM "ia64-unknown-linux2.4"
else if (`uname` == "Linux") then
setenv PLATFORM "i386-unknown-linux2.4"
endif
cd $DYNINST_ROOT
mkdir -p ${PLATFORM}/bin
mkdir -p ${PLATFORM}/lib
cd $DYNINST_ROOT/core
make DyninstAPI
cd $DYNINST_ROOT
install -d $ROOT/include/dyninst
install -D -m u=rw,g=r,o=r core/dyninstAPI/h/BPatch*.h
$ROOT/include/dyninst
install -D ${PLATFORM}/lib/libdyninstAPI_RT.so.1
$ROOT/lib/libdyninstAPI_RT.so.1
install -D ${PLATFORM}/lib/libdyninstAPI.so $ROOT/lib/libdyninstAPI.so
cd $DYNINST_ROOT/../dpcl/src
./configure --prefix=$ROOT --includedir=$ROOT/include/dpcl
--enable-md-dyninst
make
make install
unsetenv DYNINST_ROOT
unsetenv PLATFORM
cd ../../..
Step 2: Check .rhosts file
Make sure that your login specific .rhosts file has entries for
all the hosts you will be accessing via DPCL. Entries will look
like this: (not the dashed lines)
----------------------------------------
hubble userid
hubble.americas.sgi.com userid
----------------------------------------
Step 3: dpcl.config file must be present
Create a file named dpcl.config in /opt/dpcl/etc that contains the
following two lines: (not the dashed lines)
------------------------------
security:
method = dpcl
------------------------------
Step 4: Super Daemon entry in /etc/services
The build mentioned above should install the Super Daemon entry
in /etc/services. If it doesn't proceed with the following.
Add the DPCL Super Daemon to the /etc/services file. The line(s)
should be as follows: (not the dashed lines) You can insert it at
the end of the file just above the Local Services area.
-------------------------------------------
# dpcl Super Daemon
dpclSD 7895/tcp # DPCL Super Daemon
-------------------------------------------
Step 5: /etc/xinetd.d/dpclSD
file
Add the DPCL Super Daemon xinetd.d "dpclSD" file into the /etc/xinetd.d
directory. Here is an example of the file contents needed: (not the
dashed lines)
---------------------------------------------
service dpclSD
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /perftools/ROOT/bin/dpclSD
server_args = /perftools/ROOT/bin/dpcld /tmp/dpcld /tmp/dpcl
env += LD_LIBRARY_PATH=/perftools/ROOT/lib
env += DPCL_RT_LIB=/perftools/ROOT/lib/libdpclRT.so.1
env += DYNINSTAPI_RT_LIB=/perftools/ROOT/lib/libdyninstAPI_RT.so.1
}
---------------------------------------------
Change the directory patch to match that of the actual directory path
of the actual DPCL build you want to run. In this example the
DPCL components are in /perftools/ROOT.
Step 6: Activate the Super
Daemon
Do a: "ps -ef | grep dpcl" to see if any existing super daemons are
running or if there are any hanging daemons.
The 'xinetd' daemon must be restarted: "/etc/init.d/xinetd start"at
some point following Open|SpeedShop installation. Doing so allows
'xinetd' to pick up the SuperDaemon (dpclSD) service and start
'listening' on
its port.
For Altix: 'kill -SIGHUP `cat /var/run/xinetd.pid`'. When
'xinetd' is restarted, lines similar to the following should appear in
the system file '/var/log/messages':
.... xinetd[617]: Starting reconfiguration
.... xinetd[617]: readjusting service dpclSD
Do the following command once the xinetd daemon has been
restarted, per
the TroubleShooting Guide. This will tell you if the Super Daemon
is running.
"netstat -a -inet | grep dpclSD"
or
"netstat -a -inet" yields this type of list:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local
Address
Foreign Address
State
tcp
0 0
*:32768
*:*
LISTEN
tcp
0 0
*:login
*:*
LISTEN
tcp
0 0 localhost.localdo:32769
*:* LISTEN
...
...
tcp
0 0
*:telnet
*:*
LISTEN
tcp
0 0
*:dpclSD
*:*
LISTEN
tcp
0 0
*:smtp
*:*
LISTEN