# Troubleshooting On the user's Pi the active runtime log is /var/log/codesyscontrol.log. /var/opt/codesys/codesyscontrol.log contained old logs. Check timestamps. ```sh sudo /etc/init.d/codesyscontrol status sudo tail -n 100 /var/log/codesyscontrol.log file component/out/libCmpAtomModbus.so nm -D component/out/libCmpAtomModbus.so ``` Look for CmpAtomModbus, undefined symbol, signature mismatch or load errors. ComponentEntry and atmbcall_cext must be exported. The observed manual load was component ID 0xffff2001, version 0.2.0.0. Ensure custom component IDs do not collide. External function signature: 0x709EE65B, API version: 0x00020000. A valid component load does not prove the request scheduler or device I/O works. AccessViolation in processAllRequests: use the current export with zero-count, bounds and null checks and do a full download. Nonzero stale pointers still need lifecycle investigation. Keep requests and their data arrays alive for the client lifetime, and do not change a registered request's client while running. Use one IEC task for all native clients. Handles must not be retained/persistent. For STOP/download, disable the client and let a scan run, or call release(). See compat/README.md for lifecycle limitations and uncertain-write handling.