EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Simple test fails to find subroutine in registry
From: Matt Rippa via Tech-talk <[email protected]>
To: Talk EPICS Tech <[email protected]>
Date: Mon, 6 May 2019 10:11:06 -1000
On EPICS 3.14.12.7, I have a simple application to test the subroutine in an aSubRecord.
The INAM routine is found, but the SNAM lookup fails. I can't track this down.

1. simple.c, simple.dbd, simple.db, Makefile, and registryDump.txt attached.
2. The aSubRecord fails inside init_record with registryFunctionFind(prec->snam)
3. Yet the registryDump shows both my subroutine names.

Anyone know what I'm doing wrong?

Thanks for your help,
-Matt


cd /gem_sw/test/mrippa/simple
dbLoadDatabase("dbd/simple-mk-IOC.dbd")
simple_mk_IOC_registerRecordDeviceDriver(pdbbase)
dbLoadRecords("db/simple.db")
iocInit

Starting iocInit
############################################################################
## EPICS R3.14.12.7-DEV
## EPICS Base built Dec 17 2017
############################################################################
Simple Init
Subroutine not found PV: simpleTest aSubRecord::init_record - SNAM subr not found

iocRun: All initialization complete

Hash table has 1024 buckets
 [ 13]   1    devBoSoftCallback 0x17d728
 [ 28]   1    errlog 0x1b3ee0
 [ 44]   1    longin 0x17d4b4
 [ 53]   1    dbDumpRecordType 0x1b3ee0
 [ 62]   1    dbPvdTableSize 0x1b3ee0
 [ 64]   1    iocshCmd 0x1b3ee0
 [ 68]   1    aspuag 0x1b3ee0
 [ 75]   1    aSub 0x17d4b4
 [ 78]   1    devTimestampAI 0x17d728
 [ 82]   1    devAaiSoft 0x17d728
 [105]   1    devSoSoft 0x17d728
 [108]   1    devBoSoft 0x17d728
 [115]   1    devAiSoft 0x17d728
 [120]   2    epicsThreadShowAll 0x1b3ee0  var 0x1b3ee0
 [128]   1    devBoGeneralTime 0x17d728
 [143]   1    dbDumpPath 0x1b3ee0
 [152]   1    devMbboSoftRaw 0x17d728
 [155]   1    dbcar 0x1b3ee0
 [174]   2    gft 0x1b3ee0  scanpiol 0x1b3ee0
 [176]   1    state 0x17d4b4
 [198]   1    errlogInit2 0x1b3ee0
 [216]   1    iocLogInit 0x1b3ee0
 [241]   1    devCalcoutSoft 0x17d728
 [254]   2    registryDeviceSupportFind 0x1b3ee0  asSetSubstitutions 0x1b3ee0
 [271]   1    devLiGeneralTime 0x17d728
 [279]   1    ClockTime_Shutdown 0x1b3ee0
 [284]   1    asCaDebug 0x1b3ed4
 [285]   1    devSoSoftCallback 0x17d728
 [289]   2    dbp 0x1b3ee0  devMbboDirectSoftCallback 0x17d728
 [290]   1    dbs 0x1b3ee0
 [300]   1    epicsPrtEnvParams 0x1b3ee0
 [304]   1    dba 0x1b3ee0
 [306]   2    dbc 0x1b3ee0  devMbbiSoftRaw 0x17d728
 [307]   1    dbb 0x1b3ee0
 [309]   1    dbd 0x1b3ee0
 [310]   1    dbPutAttribute 0x1b3ee0
 [314]   1    cd 0x1b3ee0
 [315]   1    dbLockShowLocked 0x1b3ee0
 [317]   1    dbl 0x1b3ee0
 [318]   1    devMbboSoft 0x17d728
 [319]   1    dbhcr 0x1b3ee0
 [327]   1    devMbbiDirectSoft 0x17d728
 [328]   1    CASDEBUG 0x1b3ed4
 [333]   1    devMbboSoftCallback 0x17d728
 [334]   1    calc 0x17d4b4
 [339]   1    dbDumpFunction 0x1b3ee0
 [350]   1    devTimestampSI 0x17d728
 [352]   1    scanpel 0x1b3ee0
 [357]   1    registryDump 0x1b3ee0
 [358]   3    registryFunctionFind 0x1b3ee0  dbap 0x1b3ee0
              taskwdShow 0x1b3ee0
 [359]   2    exit 0x1b3ee0  date 0x1b3ee0
 [362]   1    coreRelease 0x1b3ee0
 [363]   1    devAoSoftCallback 0x17d728
 [365]   1    devCalcoutSoftCallback 0x17d728
 [373]   1    scanppl 0x1b3ee0
 [376]   1    dbReportDeviceConfig 0x1b3ee0
 [378]   1    dbDumpRecord 0x1b3ee0
 [383]   1    tpn 0x1b3ee0
 [391]   1    errlogInit 0x1b3ee0
 [397]   1    NTPTime_Shutdown 0x1b3ee0
 [407]   1    devMbboDirectSoft 0x17d728
 [408]   1    callbackSetQueueSize 0x1b3ee0
 [416]   1    dbDumpRegistrar 0x1b3ee0
 [419]   1    dbDumpVariable 0x1b3ee0
 [422]   1    NTPTime_Report 0x1b3ee0
 [423]   1    fanout 0x17d4b4
 [427]   1    asSetFilename 0x1b3ee0
 [438]   1    dbior 0x1b3ee0
 [443]   1    devLoSoft 0x17d728
 [447]   1    dbRecordsOnceOnly 0x1b3ed4
 [465]   1    event 0x17d4b4
 [472]   1    devAiGeneralTime 0x17d728
 [477]   1    devSoStdio 0x17d728
 [479]   1    simple_mk_IOC_registerRecordDeviceDriver 0x1b3ee0
 [483]   1    dbpf 0x1b3ee0
 [503]   1    dbpr 0x1b3ee0
 [504]   1    eltc 0x1b3ee0
 [509]   1    ascar 0x1b3ee0
 [517]   1    epicsParamShow 0x1b3ee0
 [522]   1    dbPvdDump 0x1b3ee0
 [533]   1    devLiSoft 0x17d728
 [535]   1    help 0x1b3ee0
 [538]   1    dbNotifyDump 0x1b3ee0
 [549]   1    astac 0x1b3ee0
 [550]   1    devEventSoft 0x17d728
 [554]   1    dbgrep 0x1b3ee0
 [586]   1    aai 0x17d4b4
 [588]   1    aao 0x17d4b4
 [589]   1    iocPause 0x1b3ee0
 [593]   1    aspmem 0x1b3ee0
 [602]   1    asSubProcess 0x17d748
 [604]   1    scanOnceSetQueueSize 0x1b3ee0
 [610]   1    zoneset 0x1b3ee0
 [613]   1    asSubInit 0x17d748
 [617]   1    heapSpace 0x1b3ee0
 [626]   1    devSASoft 0x17d728
 [628]   1    devAiSoftRaw 0x17d728
 [630]   1    dbgf 0x1b3ee0
 [634]   1    stringout 0x17d4b4
 [645]   1    epicsEnvShow 0x1b3ee0
 [647]   1    netstat 0x1b3ee0
 [649]   1    bo 0x17d4b4
 [651]   1    simple 0x17d748
 [655]   1    bi 0x17d4b4
 [656]   1    devMbbiSoft 0x17d728
 [658]   1    compress 0x17d4b4
 [662]   2    asInit 0x1b3ee0  epicsThreadResume 0x1b3ee0
 [667]   1    dbDumpDriver 0x1b3ee0
 [669]   1    setIocLogDisable 0x1b3ee0
 [683]   1    dbTemplateMaxVars 0x1b3ed4
 [684]   1    generalTimeReport 0x1b3ee0
 [695]   1    permissive 0x17d4b4
 [699]   1    iocInit 0x1b3ee0
 [705]   1    dbLoadTemplate 0x1b3ee0
 [711]   1    calcout 0x17d4b4
 [723]   1    asprules 0x1b3ee0
 [727]   1    simpleInit 0x17d748
 [732]   1    installLastResortEventProvider 0x1b3ee0
 [746]   1    dbnr 0x1b3ee0
 [749]   1    devBiSoftRaw 0x17d728
 [750]   1    dbDumpField 0x1b3ee0
 [751]   3    epicsMutexShowAll 0x1b3ee0  epicsThreadSleep 0x1b3ee0
              waveform 0x17d4b4
 [762]   1    devLoSoftCallback 0x17d728
 [768]   2    dbDumpBreaktable 0x1b3ee0  dfanout 0x17d4b4
 [778]   1    ao 0x17d4b4
 [780]   1    ai 0x17d4b4
 [781]   2    dbDumpDevice 0x1b3ee0  sub 0x17d4b4
 [782]   1    seq 0x17d4b4
 [787]   1    sel 0x17d4b4
 [792]   1    devSiGeneralTime 0x17d728
 [802]   1    dbstat 0x1b3ee0
 [803]   1    mbbiDirect 0x17d4b4
 [827]   1    dblsr 0x1b3ee0
 [829]   1    devWfSoft 0x17d728
 [830]   1    dbLoadDatabase 0x1b3ee0
 [832]   1    dbtgf 0x1b3ee0
 [836]   1    dbLoadRecords 0x1b3ee0
 [839]   1    devBoSoftRaw 0x17d728
 [855]   2    dbtpf 0x1b3ee0  dbBptNotMonotonic 0x1b3ed4
 [863]   1    dbtpn 0x1b3ee0
 [864]   2    iocBuild 0x1b3ee0  ClockTime_Report 0x1b3ee0
 [870]   1    pwd 0x1b3ee0
 [871]   1    pft 0x1b3ee0
 [873]   1    devAaoSoft 0x17d728
 [876]   1    registryRecordTypeFind 0x1b3ee0
 [883]   1    registryDriverSupportFind 0x1b3ee0
 [887]   1    asdbdump 0x1b3ee0
 [894]   1    dbel 0x1b3ee0
 [900]   1    iocLogShow 0x1b3ee0
 [904]   1    stringin 0x17d4b4
 [916]   1    epicsEnvSet 0x1b3ee0
 [921]   1    mbbi 0x17d4b4
 [927]   2    casr 0x1b3ee0  mbbo 0x17d4b4
 [934]   1    epicsThreadShow 0x1b3ee0
 [941]   1    mbboDirect 0x17d4b4
 [952]   1    dbDumpMenu 0x1b3ee0
 [962]   1    devBiSoft 0x17d728
 [963]   1    longout 0x17d4b4
 [965]   1    devMbboDirectSoftRaw 0x17d728
 [967]   1    devSiSoft 0x17d728
 [973]   1    nfsMount 0x1b3ee0
 [986]   1    asphag 0x1b3ee0
 [989]   1    devAoSoft 0x17d728
 [990]   1    devAoSoftRaw 0x17d728
 [994]   1    subArray 0x17d4b4
 [1003]   1    # 0x1b3ee0
 [1008]   1    iocRun 0x1b3ee0
 [1011]   2    dbtr 0x1b3ee0  devMbbiDirectSoftRaw 0x17d728
 [1017]   1    asDumpHash 0x1b3ee0
 [1019]   1    dbla 0x1b3ee0
854 buckets empty.
#include <epicsPrint.h>
#include <epicsExport.h>
#include <registryFunction.h>
#include <aSubRecord.h>

long simpleInit(aSubRecord *pasub) {
    errlogPrintf("Simple Init\n");

    return 0;
}

long simple(aSubRecord *pasub) {
    errlogPrintf("Simple \n");


    return 0;
}

epicsRegisterFunction(simpleInit);
epicsRegisterFunction(simple);

Attachment: simple.db
Description: Binary data

Attachment: Makefile
Description: Binary data

Attachment: simple-mk-IOC.dbd
Description: Binary data


Replies:
Re: Simple test fails to find subroutine in registry Matt Rippa via Tech-talk

Navigate by Date:
Prev: Re: libca bug? Michael Davidsaver via Tech-talk
Next: Re: Fwd: Re: EDM on stretch Hill, Bruce via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Device sending continuously Data Dirk Zimoch via Tech-talk
Next: Re: Simple test fails to find subroutine in registry Matt Rippa via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024