Experimental Physics and
| |||||||||||||||
|
Found it. For the record:
I was using the epicsOldString typedef (deprecated, I know) as a convenient way to have a fixed size string type. Inside a function with an argument defined as epicsOldString *text , I did the "make sure it is null terminated" write as *text[MAX_STRING_SIZE-1] = '\0'; instead of (*text)[MAX_STRING_SIZE-1] = '\0'; Just rarely, depending on heap memory layout, the '\0' hit specific places in areas of memory with record instances, the structures were corrupted in a way that segfaulted the IOC. Note to myself: Array typedefs are EVIL. Thanks for all the hints! ~Ralph
| ||||||||||||||
ANJ, 11 Jul 2020 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |