diff -r dc2008bc8113 -r 59f191c9185b tools/Master.cpp --- a/tools/Master.cpp Thu Jun 19 08:06:49 2008 +0000 +++ b/tools/Master.cpp Thu Jun 19 09:24:22 2008 +0000 @@ -656,7 +656,13 @@ if (ioctl(fd, EC_IOCTL_SDO_DOWNLOAD, &data) < 0) { stringstream err; - err << "Failed to download Sdo: " << strerror(errno); + err << "Failed to download Sdo: "; + if (errno == EIO && data.abort_code) { + err << "Abort code 0x" << hex << setfill('0') << setw(8) + << data.abort_code; + } else { + err << strerror(errno); + } delete [] data.data; throw MasterException(err.str()); } @@ -751,7 +757,13 @@ if (ioctl(fd, EC_IOCTL_SDO_UPLOAD, &data) < 0) { stringstream err; - err << "Failed to upload Sdo: " << strerror(errno); + err << "Failed to upload Sdo: "; + if (errno == EIO && data.abort_code) { + err << "Abort code 0x" << hex << setfill('0') << setw(8) + << data.abort_code; + } else { + err << strerror(errno); + } delete [] data.target; close(); throw MasterException(err.str());