Hi Rong,
You appear to be running asyn R4-36.
You are getting this error:
NDStatsConfigure("STATS1", 20, 0, "TetrAMM", 0, 0, 0) terminate called after throwing an instance of 'ParamValNotDefined'
what(): paramVal::getInteger value not defined Aborted (core dumped)
I do not understand that. The only place where paramVal::getInteger should be called is in this line in asynPortDriver R4-36:
https://github.com/epics-modules/asyn/blob/89c2b93d14cdb7fe48d490785cd7780c1b997277/asyn/asynPortDriver/asynPortDriver.cpp#L288
Note that paramVal::getInteger is called in a try/catch block, and exception ParamValNotDefined is explicitly caught. So it should simply return asynParamUndefined to
the function that called paramList::GetInteger, which is normally asynPortDriver::getIntegerParam().
Your error message says that the crash generated a core dump. I think you need to run gdb on that core file and send the output of the gdb “backtrace” command.
Alternatively you can run the IOC again under gdb as follows:
gdb ../../bin/linux-arm/quadEMTestApp
run st.cmd
(when it crashes type this command)
backtrace
That will show the call stack when it crashed, and we may be able to figure out why it is happening.
Mark
-----Original Message-----
From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Rong Huang via Tech-talk
Sent: Tuesday, December 19, 2023 2:35 PM
To: tech-talk at aps.anl.gov
Subject: quadEM-R7-0 ParamValNotDefined
Hello,
Sorry I am living in the past. I am trying to install the old version
quadEM-R7-0 to match the EPICS_base version (3.14.12.8) and Asyn version in use.
I installed everything without vxWorks, with the intention to run the IOC on a PC. Currently working on RHEL linux-arm inside VMware Fusion.
The TetrAMM instrument is new, but I guess the error message is not about hardware but EPICS software. The printout of starting IOC is as
follows:
[rh@localhost iocTetrAMM]$ ../../bin/linux-arm/quadEMTestApp st.cmd
errlogInit(5000)
< envPaths
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocTetrAMM")
epicsEnvSet("TOP","/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0")
epicsEnvSet("SUPPORT","/epicsioc/used/epics/synApps_5_8_3_14_8")
epicsEnvSet("AREA_DETECTOR","/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5")
epicsEnvSet("EPICS_BASE","/epicsioc/used/epics/base-3.14.12.8")
epicsEnvSet("ASYN","/epicsioc/used/epics/synApps_5_8_3_14_8/asyn-4-36")
epicsEnvSet("ADSUPPORT","/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5/ADSupport")
epicsEnvSet("ADCORE","/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5/ADCore")
epicsEnvSet("AUTOSAVE","/epicsioc/used/epics/synApps_5_8_3_14_8/autosave-5-10")
epicsEnvSet("BUSY","/epicsioc/used/epics/synApps_5_8_3_14_8/busy-1-7-2")
epicsEnvSet("CALC","/epicsioc/used/epics/synApps_5_8_3_14_8/calc-3-7-3")
epicsEnvSet("SNCSEQ","/epicsioc/used/epics/synApps_5_8_3_14_8/seq-2-2-7")
epicsEnvSet("SSCAN","/epicsioc/used/epics/synApps_5_8_3_14_8/sscan-2-11-3")
epicsEnvSet("DEVIOCSTATS","/epicsioc/used/epics/synApps_5_8_3_14_8/iocStats-3-1-16")
epicsEnvSet("IPAC","/epicsioc/used/epics/synApps_5_8_3_14_8/ipac-2-15")
epicsEnvSet("IPUNIDIG","/epicsioc/used/epics/synApps_5_8_3_14_8/ipUnidig-2-10")
# Tell EPICS all about the record types, device-support modules, drivers, # etc. in this build
epicsEnvSet("QUADEM","/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0")
dbLoadDatabase("/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/dbd/quadEMTestApp.dbd")
quadEMTestApp_registerRecordDeviceDriver(pdbbase)
# The search path for database files
# Note: the separator between the path entries needs to be changed to a semicolon (;) on Windows epicsEnvSet("EPICS_DB_INCLUDE_PATH",
"/epicsioc/used/epics/synApps_5_8_3_14_8/areaDetector-R2-5/ADCore/db:/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/db")
< /epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/iocBoot/iocTetrAMM/TetrAMM.cmd
epicsEnvSet("PREFIX", "quadEMTest:")
epicsEnvSet("RECORD", "TetrAMM:")
epicsEnvSet("PORT", "TetrAMM")
epicsEnvSet("TEMPLATE", "TetrAMM")
epicsEnvSet("QSIZE", "20")
epicsEnvSet("RING_SIZE", "10000")
epicsEnvSet("TSPOINTS", "2048")
#epicsEnvSet("IP", "164.54.160.165:10001")
epicsEnvSet("IP", "10.1.17.35:10001")
#drvAsynIPPortConfigure("portName","hostInfo",priority,noAutoConnect,
# noProcessEos)
drvAsynIPPortConfigure("IP_TetrAMM", "10.1.17.35:10001", 0, 0, 0) asynOctetSetInputEos("IP_TetrAMM", 0, "\r\n") asynOctetSetOutputEos("IP_TetrAMM", 0, "\r") # Set both TRACE_IO_ESCAPE (for ASCII command/response) and TRACE_IO_HEX (for
binary data) asynSetTraceIOMask("IP_TetrAMM", 0, 6)
#asynSetTraceFile("IP_$(PORT)", 0, "AHxxx.out")
#asynSetTraceMask("IP_$(PORT)", 0, 9)
asynSetTraceIOTruncateSize("IP_TetrAMM", 0, 4000) # Load asynRecord record dbLoadRecords("/epicsioc/used/epics/synApps_5_8_3_14_8/asyn-4-36/db/asynRecord.db",
"P=quadEMTest:, R=asyn1,PORT=IP_TetrAMM,ADDR=0,OMAX=256,IMAX=256")
drvTetrAMMConfigure("TetrAMM", "IP_TetrAMM", 10000) dbLoadRecords("/epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/db/TetrAMM.template",
"P=quadEMTest:, R=TetrAMM:, PORT=TetrAMM") < /epicsioc/used/epics/synApps_5_8_3_14_8/quadEM-R7-0/iocBoot/commonPlugins.cmd
epicsEnvSet("T1", "Current1")
epicsEnvSet("T2", "Current2")
epicsEnvSet("T3", "Current3")
epicsEnvSet("T4", "Current4")
epicsEnvSet("T5", "SumX")
epicsEnvSet("T6", "SumY")
epicsEnvSet("T7", "SumAll")
epicsEnvSet("T8", "DiffX")
epicsEnvSet("T9", "DiffY")
epicsEnvSet("T10", "PosX")
epicsEnvSet("T11", "PosY")
# Create 11 statistics plugins
NDStatsConfigure("STATS1", 20, 0, "TetrAMM", 0, 0, 0) terminate called after throwing an instance of 'ParamValNotDefined'
what(): paramVal::getInteger value not defined Aborted (core dumped)
Thank you for your attention,
Rong