EPICS Home

Experimental Physics and Industrial Control System


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

Subject: Re: Epics 3.14.8: faulty registrar statement in dbd causes memPartAlloc error on vxWorks
From: Goetz Pfeiffer <[email protected]>
To: [email protected]
Date: Fri, 28 May 2010 09:37:54 +0200
On 05/27/2010 03:21 PM, Andrew Johnson wrote:
Hi Goetz,

On Thursday 27 May 2010 07:44:23 Goetz Pfeiffer wrote:
I use Epics 3.14.8 for my application. I recently got rid of two of my
sequencer programs due to various optimizations. But I still had a
"registrar" statement in my dbd file, now for a module that no longer
existed.
You should have seen a load failure complaining about missing symbols of the
form pvar_func_<routine>  for each of your missing registrar routines.  Those
load failures should never be ignored, they indicate problems of this kind.

I verified that any "registrar" statement for a non-existing module
produces this error. But if you see this on the IOC console you have no
idea whats wrong with your program. An error message like "invalid
registrar [registrar-name]" would be much better.

Does the newest Epics release still show this behavior and if it is so,
are any plans to fix this ?
Please check whether you were getting those load errors or not.  The
idcp_registerRecordDeviceDriver() subroutine that gets generated from your
IOC's DBD file just calls every registrar function directly, it doesn't
currently have the names of those routines as strings.  It could detect this
case, but the load errors should be sufficient to tell you there's something
wrong.

- Andrew

Hello Andrew,


thank you for your quick reply. You are right, when I have a registrar
statement for a non-existing module "blah" I get this error message on the
console (before "memPartAlloc: block too big"):

ld < idcp.munch
Undefined symbol: pvar_func_blah (binding 1 type 0)
sysAtReboot not found. epicsExit will not be called by reboot.
value = 27253064 = 0x19fd948

I will add to my personal Epics FAQ that this message may be caused by a faulty
registrar statement... :-)


Many greetings

Goetz Pfeiffer

--
Dipl. Ing. Götz Pfeiffer
Software Engineer - Insertion Device Control

Albert-Einstein-Str. 15, D-12489 BERLIN
Fon +49 30 6392 4921
Fax +49 30 6392 4972
[email protected]
[email protected]

Helmholtz-Zentrum Berlin für Materialien und Energie GmbH
Elektronenspeicherring BESSY II
Albert-Einstein-Str. 15, D-12489 BERLIN
Vorsitzende des Aufsichtsrates: Dr. Beatrix Vierkorn-Rudolph,
Geschäftsführer: Prof. Dr. Anke Rita Pyzalla, Prof. Dr. Michael Steiner, Dr. Ulrich Breuer
Sitz Berlin, AG Charlottenburg, 89 HRB 5583

Information:
Durch die Fusion mit dem ehemaligen Hahn-Meitner-Institut (HMI) ist
BESSY ist nun Teil des neuen Helmholtz-Zentrum Berlin für Materialien
und Energie (HZB). Die Fusion wird Anfang 2009 vollzogen sein.



References:
Epics 3.14.8: faulty registrar statement in dbd causes memPartAlloc error on vxWorks Goetz Pfeiffer
Re: Epics 3.14.8: faulty registrar statement in dbd causes memPartAlloc error on vxWorks Andrew Johnson

Navigate by Date:
Prev: Re: labCA and EPICS_CA_MAX_ARRAY_BYTES Matt Newville
Next: EPICS wiki is down Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Epics 3.14.8: faulty registrar statement in dbd causes memPartAlloc error on vxWorks Andrew Johnson
Next: building areaDetector firewire support on Windows John Dobbins
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024