docs: def symbols_app(parser, _, args):  # pragma: no cover
      """
      List ELF symbol table.
      """
  
      parser.add_argument('file', help='ELF file to list the symbols of')
      parser.add_argument('symbol', nargs='?', help='show only this symbol')
      parser.add_argument('--exact', '-e', action='store_const', const=True, help='filter by exact symbol name')
      args = parser.parse_args(args)
  
      print('%-18s %5s %-7s %-7s %-10s %5s %s' % (
          'value',
          'size',
          'type',
          'binding',
          'visibility',
          'index',
          'name',
      ))
  
      elf = ELF(args.file)
      for symbol in elf.symbols:
          if args.symbol:
              if args.exact:
                  if symbol.name != args.symbol:
                      continue
              else:
                  if args.symbol.lower() not in symbol.name.lower():
                      continue
  
          if symbol.shndx == symbol.SpecialSection.undef:
              shndx = 'UND'
          elif symbol.shndx == symbol.SpecialSection.abs:
              shndx = 'ABS'
          elif symbol.shndx == symbol.SpecialSection.common:
              shndx = 'COM'
          else:
              shndx = str(symbol.shndx)
  
          print('0x%016x %5d %-7s %-7s %-10s %5s %s' % (
              symbol.value,
              symbol.size,
              symbol.type.name,
              symbol.binding.name,
              symbol.visibility.name,
              shndx,
              symbol.name,
          ))