public void create(Address addr) throws MemoryAccessException, AddressOutOfBoundsException {
		CreateStructureCmd dataCmd = null;

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

		/* Create a new structure at the start of the .eh_frame_hdr section */
		dataCmd = new CreateStructureCmd(ehFrameHdrStruct, addr);
		dataCmd.applyTo(prog);

		/* Set a comment on the newly created structure */
		SetCommentCmd commentCmd =
			new SetCommentCmd(addr, CommentType.PLATE, "Exception Handler Frame Header");
		commentCmd.applyTo(prog);

		// Set the class members accordingly
		eh_version = prog.getMemory().getByte(addr) & 0xFF;
		eh_FramePtrEncoding = prog.getMemory().getByte(addr.add(1)) & 0xFF;
		eh_FrameDescEntryCntEncoding = prog.getMemory().getByte(addr.add(2)) & 0xFF;
		eh_FrameTableEncoding = prog.getMemory().getByte(addr.add(3)) & 0xFF;
	}
Method that creates an Exception Handler Frame Header Structure
at the address specified by 'addr'. If addr is 'null', this method returns without creating
the structure.

@param addr - Address at which the Exception Handler Frame Header Structure should be created.
@throws AddressOutOfBoundsException if the memory needed for this frame header isn't in the program.
@throws MemoryAccessException if the memory needed for this frame header isn't in the program.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/exceptionhandlers/gcc/structures/ehFrame/ExceptionHandlerFrameHeader.java