Ø
At the top of freeListLib.c add:
Ø
#define EPICS_FREELIST_DEBUG
I did that and rebuilt base and synApps.
The error is the same:
ioc13lab2>
VME Bus Error accessing A16: 0x347e
machine check
Exception next instruction address: 0x0368cf38
Machine Status Register: 0x0008b032
Condition Register: 0x48000884
Task: 0x4441190 "CAS-event"
0x4441190 (CAS-event): task 0x4441190 has had a failure and has been stopped.
0x4441190 (CAS-event): The task has been terminated because it triggered an exception that raised the signal 10.
ioc13lab2> tt 0x4441190
0x0012489c vxTaskEntry +0x48 : epicsThreadEntry ()
0x036a8f18 epicsThreadEntry+0x80 : 0x036073f8 ()
0x036076d0 db_start_events+0x458: db_delete_field_log ()
0x03606be0 db_delete_field_log+0x54 : freeListFree ()
value = 0 = 0x0
Other ideas of how to debug it?
Thanks,
Mark
-----Original Message-----
From: Michael Davidsaver <mdavidsaver at gmail.com>
Sent: Thursday, May 26, 2022 4:26 PM
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: tech-talk at aps.anl.gov
Subject: Re: Bus errors accessing VME with base 7.0.6.1 and latest synApps modules
On 5/26/22 14:00, Mark Rivers wrote:
> It looks like freeListFree() is probably generating an access violation.
If so, this would almost certainly be a sign of a bug elsewhere.
(double free, free of stack, ...)
Bypassing freeListLib _might_ give some added insight, or perhaps change the fault in some way.
At the top of freeListLib.c add:
> #define EPICS_FREELIST_DEBUG
This will short circuit the free list code, to always call malloc() and free().
Or more specifically, callocMustSucceed(), you would find out if any allocation requests are failing.
https://github.com/epics-base/epics-base/blob/3fadf4a26cfe33dcb9eb9e4620634e1d3a7b9763/modules/libcom/src/freeList/freeListLib.c#L63-L65