- if (compare_failed){
- /* An error handler could have caught the failing check
- * only report a problem when there wasn't a handler, or if the handler
- * acknowledged the error
- */
- /*
- LOG_WARNING("TAP %s:",
- jtag_tap_name(field->tap));
- */
- if (compare_failed)
- {
- char *captured_char = buf_to_str(captured, (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
- char *in_check_value_char = buf_to_str(in_check_value, (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
-
- if (in_check_mask)
- {
- char *in_check_mask_char;
- in_check_mask_char = buf_to_str(in_check_mask, (num_bits > DEBUG_JTAG_IOZ) ? DEBUG_JTAG_IOZ : num_bits, 16);
- LOG_WARNING("value captured during scan didn't pass the requested check:");
- LOG_WARNING("captured: 0x%s check_value: 0x%s check_mask: 0x%s",
- captured_char, in_check_value_char, in_check_mask_char);
- free(in_check_mask_char);
- }
- else
- {
- LOG_WARNING("value captured during scan didn't pass the requested check: captured: 0x%s check_value: 0x%s", captured_char, in_check_value_char);
- }
+ if (compare_failed) {
+ char *captured_str, *in_check_value_str;
+ int bits = (num_bits > DEBUG_JTAG_IOZ)
+ ? DEBUG_JTAG_IOZ
+ : num_bits;
+
+ /* NOTE: we've lost diagnostic context here -- 'which tap' */
+
+ captured_str = buf_to_str(captured, bits, 16);
+ in_check_value_str = buf_to_str(in_check_value, bits, 16);
+
+ LOG_WARNING("Bad value '%s' captured during DR or IR scan:",
+ captured_str);
+ LOG_WARNING(" check_value: 0x%s", in_check_value_str);
+
+ free(captured_str);
+ free(in_check_value_str);