#compdef gcore

_gcore() {
	local -a content

	content=(
		"anon[Anonymous private mappings]"
		"ctf[CTF type information]"
		"data[Writable private file mappings]"
		"dism[DISM mappings]"
		"heap[Process heap]"
		"ism[ISM mappings]"
		"rodata[Read-only private file mappings]"
		"shanon[Anonymous shared mappings]"
		"shfile[File-backed shared mappings]"
		"shm[System V shared memory]"
		"stack[Process stack]"
		"symtab[Symbol table sections for loaded files]"
		"text[Readable and executable private file mappings]"
	)

	_arguments -s \
		'-p[Use per-process core file repository]' \
		'-g[Use global core file repository]' \
		'-F[Force grabbing the target process]' \
		'-c[Set core file content]:_values -s + "content" $content' \
		'-o[Set core file base name]:' \
		'*:pids:_pids'
}

_gcore "$@"
