Skip to content

IOC crash due to unexpected diagnostic CPU response

The piezodriver IOC in MBL-050 system 4 crashes at start-up.

06/03/2024 13:06:38 terminate called after throwing an instance of 'std::out_of_range'
06/03/2024 13:06:38   what():  basic_string::substr

The backtrace shows that the exception is thrown by DiagnosticProcessor.cpp#L186

There's something wrong with the communication with the diagnostic processor on this board. diag_talk() appears to be returning junk data.

Anyway, we should check the return value of string::find() before using it as an index.

Edited by Andreas Persson