diff --git a/src/db/dbCa.c b/src/db/dbCa.c index c2b5cb152..ccf5c85b0 100644 --- a/src/db/dbCa.c +++ b/src/db/dbCa.c @@ -434,15 +434,36 @@ int dbCaGetLinkDBFtype(struct link *plink) static void exceptionCallback(struct exception_handler_args args) { - chid chid = args.chid; + chid chid = args.chid; long stat = args.stat; /* Channel access status code*/ - const char *channel; - static char *noname = "unknown"; + const char *channel; + const char *context; + static char *unknown = "unknown"; + const char *nativeType; + const char *requestType; + long nativeCount; + long requestCount; + int readAccess; + int writeAccess; - channel = (chid ? ca_name(chid) : noname); + channel = (chid ? ca_name(chid) : unknown); + context = (args.ctx ? args.ctx : unknown); + nativeType = dbr_type_to_text((chid ? ca_field_type(chid) : -1)); + requestType = dbr_type_to_text(args.type); + nativeCount = (chid ? ca_element_count(chid) : 0); + requestCount = args.count; + readAccess = (chid ? ca_read_access(chid) : 0); + writeAccess = (chid ? ca_write_access(chid) : 0); - errlogPrintf("dbCa:exceptionCallback stat %s channel %s\n", - ca_message(stat),channel); + errlogPrintf("dbCa:exceptionCallback stat \"%s\" channel \"%s\"" + " context \"%s\"\n" + " nativeType %s requestType %s" + " nativeCount %ld requestCount %ld %s %s\n", + ca_message(stat),channel,context, + nativeType,requestType, + nativeCount,requestCount, + (readAccess ? "readAccess" : "noReadAccess"), + (writeAccess ? "writeAccess" : "noWriteAccess")); }