public void create(Address cieAddress)
			throws MemoryAccessException, ExceptionHandlerFrameException {

		if (cieAddress == null || monitor.isCancelled()) {
			return;
		}

		baseAddress = cieAddress;
		monitor.setMessage("Creating Common Information Entries");

		Address currentAddress = cieAddress;

		// See if processing should stop due to the current length field == 0
		if (program.getMemory().getInt(currentAddress) == 0) {
			markEndOfFrame(currentAddress);
			endOfFrame = true;
			return;
		}

		// NOTE: The process... method calls that follow are order dependent.
		//       Each one is passed the address of the field it will process and 
		//       returns the next address after that field, which will then be 
		//       used by the next field's process method.

		// Create the CIE length field
		currentAddress = processCieLength(currentAddress);
		currentAddress = processExtendedLength(currentAddress);

		/* Create the CIE fields & update the current address as you go. */

		currentAddress = processCieId(currentAddress);
		currentAddress = processVersion(currentAddress);
		currentAddress = processAugmentationString(currentAddress);

		if (version >= (byte) 4) {
			currentAddress = processPointerSize(currentAddress);
			currentAddress = processSegmentSize(currentAddress);
		}

		currentAddress = processCodeAlign(currentAddress);
		currentAddress = processDataAlign(currentAddress);
		currentAddress = processReturnAddrRegister(currentAddress);

		if (isInDebugFrame) {
			fdeEncoding = 0x0;
		}
		else {
			currentAddress = processAugmentationInfo(currentAddress);
		}

		/*
		 * Add initial instructions section and possible padding from remaining bytes.
		 */
		if (!hasExtLength) {
			if (curSize < intLength) {
				currentAddress = processInitialInstructions(currentAddress);
			}
		}
		else {
			throw new ExceptionHandlerFrameException("ExtLength is not completely implemented.");
		}

		nextAddress = currentAddress;
	}
Creates a Common Information Entry (CIE) at <code>cieAddress</code>. 
<br>Note: This method must get called before any of the "get..." methods.

@param cieAddress the address where the CIE should be created.
@throws MemoryAccessException if memory for the CIE couldn't be read.
@throws ExceptionHandlerFrameException if some of the CIE information couldn't be created.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/exceptionhandlers/gcc/structures/ehFrame/Cie.java