#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 "$@"
