about summary refs log tree commit diff
path: root/Completion/Unix/Command/_elfdump
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_elfdump')
-rw-r--r--Completion/Unix/Command/_elfdump47
1 files changed, 47 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_elfdump b/Completion/Unix/Command/_elfdump
new file mode 100644
index 000000000..ee92402d2
--- /dev/null
+++ b/Completion/Unix/Command/_elfdump
@@ -0,0 +1,47 @@
+#compdef elfdump
+
+local -a args
+
+_elf_file() {
+  [[ -x $REPLY || $REPLY = (core*|*.([ao]|so|elf)) ]]
+}
+
+args=(
+  '-c[dump section header information]'
+  '-d[dump .dynamic section]'
+  '-e[dump file header]'
+  '-G[dump .got (global offset table) section]'
+  '-h[dump .hash section]'
+  '-i[dump .interp (interpreter) section]'
+  '-n[dump .note sections]'
+  '(-w)-p[dump program headers]'
+  '-r[dump relocation sections]'
+  '-s[dump symbol table sections]'
+  '(-p)-w[write contents of matched sections to file]:file:_files'
+)
+
+case $OSTYPE in
+  solaris*)
+    args+=(
+      '-g[dump .group section]'
+      '-H[dump .SUNW_cap (capabilities) section]'
+      '-m[dump .SUNW_move section]'
+      '-S[dump symbol table sections sorted according to symbol sort sections]'
+      '-u[dump stack unwind/exceptions sections]'
+      '-v[dump .SUNW_version (versioning) sections]'
+      '-y[dump .SUNW_syminfo (symbol bindings) section]'
+      '-I[match sections by index]:index or range'
+      "-N[match sections by name]:section"
+      '-T[match sections by type]:type'
+      '-C[demangle C++ symbol names]'
+      '-k[calculate ELF checksum]'
+      '-l[show long section names without truncation]'
+      '-O[specify osabi to apply]:osabi'
+      '-P[use alternative section header]'
+      "*:elf file:_files -g '*(-.e:_elf_file:)'"
+    )
+  ;;
+  freebsd*) args+=( '-a[dump all information]' ) ;;
+esac
+
+_arguments -s $args