add: PRINT(("block %Ld: vds search failed\n", avds_locations[i])); }
context: walk_anchor_volume_descriptor_sequences(int device, off_t offset, off_t length,                                        uint32 blockSize, uint32 blockShift,                                        udf_logical_descriptor &logicalVolumeDescriptor,							            udf_partition_descriptor partitionDescriptors[],							            uint8 &partitionDescriptorCount){	DEBUG_INIT(CF_PRIVATE, NULL);	const uint8 avds_location_count = 4;	const off_t avds_locations[avds_location_count] = {														256,	                                                    length-256,	                                                    length,	                                                    512,	                                                  };	bool found_vds = false;		                                                  	for (int32 i = 0; i < avds_location_count; i++) {		off_t block = avds_locations[i];		off_t address = (offset + block) << blockShift;		MemoryChunk chunk(blockSize);		udf_anchor_descriptor *anchor = NULL;					status_t anchorErr = chunk.InitCheck();		if (!anchorErr) {			ssize_t bytesRead = read_pos(device, address, chunk.Data(), blockSize);			anchorErr = bytesRead == (ssize_t)blockSize ? B_OK : B_IO_ERROR;			if (anchorErr) {				PRINT(("block %Ld: read_pos(pos:%Ld, len:%ld) failed with error 0x%lx\n",				       block, address, blockSize, bytesRead));			}		}					if (!anchorErr) {			anchor = reinterpret_cast<udf_anchor_descriptor*>(chunk.Data());			anchorErr = anchor->tag().init_check(block+offset);			if (anchorErr) {				PRINT(("block %Ld: invalid anchor\n", block));			} else {				PRINT(("block %Ld: valid anchor\n", block));			}		}		if (!anchorErr) {			PRINT(("block %Ld: anchor:\n", block));			PDUMP(anchor);			// Found an avds, so try the main sequence first, then			// the reserve sequence if the main one fails.			anchorErr = walk_volume_descriptor_sequence(anchor->main_vds(), device,														blockSize, blockShift,			                                            logicalVolumeDescriptor,			                                            partitionDescriptors,			                                            partitionDescriptorCount);			if (anchorErr)				anchorErr = walk_volume_descriptor_sequence(anchor->reserve_vds(), device,															blockSize, blockShift,			                                            	logicalVolumeDescriptor,			                                            	partitionDescriptors,			                                            	partitionDescriptorCount);						}		if (!anchorErr) {			PRINT(("block %Ld: found valid vds\n", avds_locations[i]));			found_vds = true;			break;		} //else {			// Both failed, so loop around and try another avds//			PRINT(("block %Ld: vds search failed\n", avds_locations[i]));//		}	}	status_t err = found_vds ? B_OK : B_ERROR;	RETURN(err);}