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 2019 2020 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 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Stream device problem with redirection in @mismatch |
From: | Dirk Zimoch <[email protected]> |
To: | ruzickaj <[email protected]> |
Cc: | Tech Talk <[email protected]> |
Date: | Wed, 8 Apr 2015 11:37:11 +0200 |
On 08.04.2015 11:20, Dirk Zimoch wrote:
> /usr/local/epics/support/stream/StreamDevice-2-6/lib/linux-x86_64/libstream.so(_ZN6Stream15getFieldAddressEPKcR12StreamBuffer+0xcd)[0x7f9c3d4bd34d] I found the bug in getFieldAddress: // FIELD in this record or VAL in other record char fullname[PVNAME_SZ + 1]; sprintf(fullname, "%s.%s", name(), fieldname); if (dbNameToAddr(fullname, &dbaddr) != OK) { // VAL in other record sprintf(fullname, "%s.VAL", fieldname); if (dbNameToAddr(fullname, &dbaddr) != OK) return false; } The first sprintf prints $(device):StatEnable.$(device):StatEnableInterlock which is way too long. My fault. I will send a patch soon.... Dirk
Try this: // FIELD in this record or VAL in other record StreamBuffer fullname; fullname.print("%s.%s", name(), fieldname); if (dbNameToAddr(fullname(), &dbaddr) != OK) { // VAL in other record fullname.clear().print("%s.VAL", fieldname); if (dbNameToAddr(fullname(), &dbaddr) != OK) return false; } (in src/StreamEpics.cc function getFieldAddress) Dirk