Hello SNC-Experts,
I have a problem with the State Notation Compiler. The snc crashes with
a 'Bus error (core dumped)' message whenever I try to compile my SNL
program of which I attached a 'maximally downsized' version (test.st).
The funny point is, that one can eliminate virtually any declaration
from it and the SNL compiler will translate it without any error. I
think the error has to do with some overflowing internal array but I
wouldn't bet on it...
Ben
--
The Notorious Neb Nesknarf
-----------------------------------------------------------------------
BESSY II
Berliner Elektronenspeicherring- phone: +49 30 6392-4865
Gesellschaft fuer Synchrotronstrahlung fax: +49 30 6392-4859
Rudower Chaussee 5 email: [email protected]
D-12489 Berlin web: http://www.bessy.de/~franksen
-----------------------------------------------------------------------
HOME: Benjamin Franksen, Fichtestr. 19a, D-10967 Berlin, +49(30)6913756
-----------------------------------------------------------------------
program test
#define NPORTS 51
#define NLINES 21
/* process variables tabEdit.db */
double tabElem[NPORTS];
assign tabElem to {""};
long tabLine;
assign tabLine to "{base}:tab:line";
monitor tabLine;
int tabNull;
assign tabNull to "{base}:tab:null";
monitor tabNull;
double tabOffset;
assign tabOffset to "{base}:tab:offset";
monitor tabOffset;
int tabDir;
assign tabDir to "{base}:tab:dir";
monitor tabDir;
int tabExec;
assign tabExec to "{base}:tab:exec";
monitor tabExec;
string tabFilename;
assign tabFilename to "{base}:tab:filename";
int tabLoad;
assign tabLoad to "{base}:tab:load";
monitor tabLoad;
int tabSave;
assign tabSave to "{base}:tab:save";
monitor tabSave;
/* event flags */
evflag efTabLine;
sync tabLine efTabLine;
evflag efTabNull;
sync tabNull efTabNull;
evflag efTabOffset;
sync tabOffset efTabOffset;
evflag efTabDir;
sync tabDir efTabDir;
evflag efTabExec;
sync tabExec efTabExec;
/* other variables */
string pvName; /* for array pvs */
char *pvBaseName; /* result of macValueGet("base") */
int port; /* current port number */
ss testss
{
state init
{
when()
{
pvBaseName = macValueGet("base");
for(port=0; port<NPORTS; port++)
{
sprintf(pvName,"%s:tab:port%d",pvBaseName,port);
pvAssign(tabElem[port],pvName);
}
} state idle
}
state idle
{
when(tabLoad)
{
tabLoad = FALSE;
pvPut(tabLoad);
pvGet(tabFilename);
} state idle
when(tabSave)
{
tabSave = FALSE;
pvPut(tabSave);
pvGet(tabFilename);
} state idle
}
}
- Navigate by Date:
- Prev:
A question about new SNL warning messages Janet B. Anderson
- Next:
Re: SNC crashes William Lupton
- 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
- Navigate by Thread:
- Prev:
Re: Proposal for boosted Symb device support Joseph P. Sullivan
- Next:
Re: SNC crashes William Lupton
- 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
|