binutils: objdump

1 
1 4 objdump
1 *********
1 
1      objdump [-a|--archive-headers]
1              [-b BFDNAME|--target=BFDNAME]
1              [-C|--demangle[=STYLE] ]
1              [-d|--disassemble]
1              [-D|--disassemble-all]
1              [-z|--disassemble-zeroes]
1              [-EB|-EL|--endian={big | little }]
1              [-f|--file-headers]
1              [-F|--file-offsets]
1              [--file-start-context]
1              [-g|--debugging]
1              [-e|--debugging-tags]
1              [-h|--section-headers|--headers]
1              [-i|--info]
1              [-j SECTION|--section=SECTION]
1              [-l|--line-numbers]
1              [-S|--source]
1              [-m MACHINE|--architecture=MACHINE]
1              [-M OPTIONS|--disassembler-options=OPTIONS]
1              [-p|--private-headers]
1              [-P OPTIONS|--private=OPTIONS]
1              [-r|--reloc]
1              [-R|--dynamic-reloc]
1              [-s|--full-contents]
1              [-W[lLiaprmfFsoRtUuTgAckK]|
1               --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
1              [-G|--stabs]
1              [-t|--syms]
1              [-T|--dynamic-syms]
1              [-x|--all-headers]
1              [-w|--wide]
1              [--start-address=ADDRESS]
1              [--stop-address=ADDRESS]
1              [--prefix-addresses]
1              [--[no-]show-raw-insn]
1              [--adjust-vma=OFFSET]
1              [--dwarf-depth=N]
1              [--dwarf-start=N]
1              [--special-syms]
1              [--prefix=PREFIX]
1              [--prefix-strip=LEVEL]
1              [--insn-width=WIDTH]
1              [-U METHOD] [--unicode=METHOD]
1              [-V|--version]
1              [-H|--help]
1              OBJFILE...
1 
1    'objdump' displays information about one or more object files.  The
1 options control what particular information to display.  This
1 information is mostly useful to programmers who are working on the
1 compilation tools, as opposed to programmers who just want their program
1 to compile and work.
1 
1    OBJFILE... are the object files to be examined.  When you specify
1 archives, 'objdump' shows information on each of the member object
1 files.
1 
1    The long and short forms of options, shown here as alternatives, are
1 equivalent.  At least one option from the list
1 '-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x' must be
1 given.
1 
1 '-a'
1 '--archive-header'
1      If any of the OBJFILE files are archives, display the archive
1      header information (in a format similar to 'ls -l').  Besides the
1      information you could list with 'ar tv', 'objdump -a' shows the
1      object file format of each archive member.
1 
1 '--adjust-vma=OFFSET'
1      When dumping information, first add OFFSET to all the section
1      addresses.  This is useful if the section addresses do not
1      correspond to the symbol table, which can happen when putting
1      sections at particular addresses when using a format which can not
1      represent section addresses, such as a.out.
1 
1 '-b BFDNAME'
1 '--target=BFDNAME'
1      Specify that the object-code format for the object files is
1      BFDNAME.  This option may not be necessary; OBJDUMP can
1      automatically recognize many formats.
1 
1      For example,
1           objdump -b oasys -m vax -h fu.o
1      displays summary information from the section headers ('-h') of
1      'fu.o', which is explicitly identified ('-m') as a VAX object file
1      in the format produced by Oasys compilers.  You can list the
1      formats available with the '-i' option.  ⇒Target Selection,
1      for more information.
1 
1 '-C'
1 '--demangle[=STYLE]'
1      Decode ("demangle") low-level symbol names into user-level names.
1      Besides removing any initial underscore prepended by the system,
1      this makes C++ function names readable.  Different compilers have
1      different mangling styles.  The optional demangling style argument
1      can be used to choose an appropriate demangling style for your
1      compiler.  ⇒c++filt, for more information on demangling.
1 
1 '-g'
1 '--debugging'
1      Display debugging information.  This attempts to parse STABS and
1      IEEE debugging format information stored in the file and print it
1      out using a C like syntax.  If neither of these formats are found
1      this option falls back on the '-W' option to print any DWARF
1      information in the file.
1 
1 '-e'
1 '--debugging-tags'
1      Like '-g', but the information is generated in a format compatible
1      with ctags tool.
1 
1 '-d'
1 '--disassemble'
1      Display the assembler mnemonics for the machine instructions from
1      OBJFILE.  This option only disassembles those sections which are
1      expected to contain instructions.
1 
1 '-D'
1 '--disassemble-all'
1      Like '-d', but disassemble the contents of all sections, not just
1      those expected to contain instructions.
1 
1      This option also has a subtle effect on the disassembly of
1      instructions in code sections.  When option '-d' is in effect
1      objdump will assume that any symbols present in a code section
1      occur on the boundary between instructions and it will refuse to
1      disassemble across such a boundary.  When option '-D' is in effect
1      however this assumption is supressed.  This means that it is
1      possible for the output of '-d' and '-D' to differ if, for example,
1      data is stored in code sections.
1 
1      If the target is an ARM architecture this switch also has the
1      effect of forcing the disassembler to decode pieces of data found
1      in code sections as if they were instructions.
1 
1 '--prefix-addresses'
1      When disassembling, print the complete address on each line.  This
1      is the older disassembly format.
1 
1 '-EB'
1 '-EL'
1 '--endian={big|little}'
1      Specify the endianness of the object files.  This only affects
1      disassembly.  This can be useful when disassembling a file format
1      which does not describe endianness information, such as S-records.
1 
1 '-f'
1 '--file-headers'
1      Display summary information from the overall header of each of the
1      OBJFILE files.
1 
1 '-F'
1 '--file-offsets'
1      When disassembling sections, whenever a symbol is displayed, also
1      display the file offset of the region of data that is about to be
1      dumped.  If zeroes are being skipped, then when disassembly
1      resumes, tell the user how many zeroes were skipped and the file
1      offset of the location from where the disassembly resumes.  When
1      dumping sections, display the file offset of the location from
1      where the dump starts.
1 
1 '--file-start-context'
1      Specify that when displaying interlisted source code/disassembly
1      (assumes '-S') from a file that has not yet been displayed, extend
1      the context to the start of the file.
1 
1 '-h'
1 '--section-headers'
1 '--headers'
1      Display summary information from the section headers of the object
1      file.
1 
1      File segments may be relocated to nonstandard addresses, for
1      example by using the '-Ttext', '-Tdata', or '-Tbss' options to
1      'ld'.  However, some object file formats, such as a.out, do not
1      store the starting address of the file segments.  In those
1      situations, although 'ld' relocates the sections correctly, using
1      'objdump -h' to list the file section headers cannot show the
1      correct addresses.  Instead, it shows the usual addresses, which
1      are implicit for the target.
1 
1      Note, in some cases it is possible for a section to have both the
1      READONLY and the NOREAD attributes set.  In such cases the NOREAD
1      attribute takes precedence, but 'objdump' will report both since
1      the exact setting of the flag bits might be important.
1 
1 '-H'
1 '--help'
1      Print a summary of the options to 'objdump' and exit.
1 
1 '-i'
1 '--info'
1      Display a list showing all architectures and object formats
1      available for specification with '-b' or '-m'.
1 
1 '-j NAME'
1 '--section=NAME'
1      Display information only for section NAME.
1 
1 '-l'
1 '--line-numbers'
1      Label the display (using debugging information) with the filename
1      and source line numbers corresponding to the object code or relocs
1      shown.  Only useful with '-d', '-D', or '-r'.
1 
1 '-m MACHINE'
1 '--architecture=MACHINE'
1      Specify the architecture to use when disassembling object files.
1      This can be useful when disassembling object files which do not
1      describe architecture information, such as S-records.  You can list
1      the available architectures with the '-i' option.
1 
1      If the target is an ARM architecture then this switch has an
1      additional effect.  It restricts the disassembly to only those
1      instructions supported by the architecture specified by MACHINE.
1      If it is necessary to use this switch because the input file does
1      not contain any architecture information, but it is also desired to
1      disassemble all the instructions use '-marm'.
1 
1 '-M OPTIONS'
1 '--disassembler-options=OPTIONS'
1      Pass target specific information to the disassembler.  Only
1      supported on some targets.  If it is necessary to specify more than
1      one disassembler option then multiple '-M' options can be used or
1      can be placed together into a comma separated list.
1 
1      For ARC, 'dsp' controls the printing of DSP instructions, 'spfp'
1      selects the printing of FPX single precision FP instructions,
1      'dpfp' selects the printing of FPX double precision FP
1      instructions, 'quarkse_em' selects the printing of special
1      QuarkSE-EM instructions, 'fpuda' selects the printing of double
1      precision assist instructions, 'fpus' selects the printing of FPU
1      single precision FP instructions, while 'fpud' selects the printing
1      of FPU souble precision FP instructions.  Additionally, one can
1      choose to have all the immediates printed in hexadecimal using
1      'hex'.  By default, the short immediates are printed using the
1      decimal representation, while the long immediate values are printed
1      as hexadecimal.
1 
1      'cpu=...' allows to enforce a particular ISA when disassembling
1      instructions, overriding the '-m' value or whatever is in the ELF
1      file.  This might be useful to select ARC EM or HS ISA, because
1      architecture is same for those and disassembler relies on private
1      ELF header data to decide if code is for EM or HS. This option
1      might be specified multiple times - only the latest value will be
1      used.  Valid values are same as for the assembler '-mcpu=...'
1      option.
1 
1      If the target is an ARM architecture then this switch can be used
1      to select which register name set is used during disassembler.
1      Specifying '-M reg-names-std' (the default) will select the
1      register names as used in ARM's instruction set documentation, but
1      with register 13 called 'sp', register 14 called 'lr' and register
1      15 called 'pc'.  Specifying '-M reg-names-apcs' will select the
1      name set used by the ARM Procedure Call Standard, whilst specifying
1      '-M reg-names-raw' will just use 'r' followed by the register
1      number.
1 
1      There are also two variants on the APCS register naming scheme
1      enabled by '-M reg-names-atpcs' and '-M reg-names-special-atpcs'
1      which use the ARM/Thumb Procedure Call Standard naming conventions.
1      (Either with the normal register names or the special register
1      names).
1 
1      This option can also be used for ARM architectures to force the
1      disassembler to interpret all instructions as Thumb instructions by
1      using the switch '--disassembler-options=force-thumb'.  This can be
1      useful when attempting to disassemble thumb code produced by other
1      compilers.
1 
1      For the x86, some of the options duplicate functions of the '-m'
1      switch, but allow finer grained control.  Multiple selections from
1      the following may be specified as a comma separated string.
1      'x86-64'
1      'i386'
1      'i8086'
1           Select disassembly for the given architecture.
1 
1      'intel'
1      'att'
1           Select between intel syntax mode and AT&T syntax mode.
1 
1      'amd64'
1      'intel64'
1           Select between AMD64 ISA and Intel64 ISA.
1 
1      'intel-mnemonic'
1      'att-mnemonic'
1           Select between intel mnemonic mode and AT&T mnemonic mode.
1           Note: 'intel-mnemonic' implies 'intel' and 'att-mnemonic'
1           implies 'att'.
1 
1      'addr64'
1      'addr32'
1      'addr16'
1      'data32'
1      'data16'
1           Specify the default address size and operand size.  These four
1           options will be overridden if 'x86-64', 'i386' or 'i8086'
1           appear later in the option string.
1 
1      'suffix'
1           When in AT&T mode, instructs the disassembler to print a
1           mnemonic suffix even when the suffix could be inferred by the
1           operands.
1 
1      For PowerPC, the '-M' argument 'raw' selects disasssembly of
1      hardware insns rather than aliases.  For example, you will see
1      'rlwinm' rather than 'clrlwi', and 'addi' rather than 'li'.  All of
1      the '-m' arguments for 'gas' that select a CPU are supported.
1      These are: '403', '405', '440', '464', '476', '601', '603', '604',
1      '620', '7400', '7410', '7450', '7455', '750cl', '821', '850',
1      '860', 'a2', 'booke', 'booke32', 'cell', 'com', 'e200z4', 'e300',
1      'e500', 'e500mc', 'e500mc64', 'e500x2', 'e5500', 'e6500', 'efs',
1      'power4', 'power5', 'power6', 'power7', 'power8', 'power9', 'ppc',
1      'ppc32', 'ppc64', 'ppc64bridge', 'ppcps', 'pwr', 'pwr2', 'pwr4',
1      'pwr5', 'pwr5x', 'pwr6', 'pwr7', 'pwr8', 'pwr9', 'pwrx', 'titan',
1      and 'vle'.  '32' and '64' modify the default or a prior CPU
1      selection, disabling and enabling 64-bit insns respectively.  In
1      addition, 'altivec', 'any', 'htm', 'vsx', and 'spe' add
1      capabilities to a previous _or later_ CPU selection.  'any' will
1      disassemble any opcode known to binutils, but in cases where an
1      opcode has two different meanings or different arguments, you may
1      not see the disassembly you expect.  If you disassemble without
1      giving a CPU selection, a default will be chosen from information
1      gleaned by BFD from the object files headers, but the result again
1      may not be as you expect.
1 
1      For MIPS, this option controls the printing of instruction mnemonic
1      names and register names in disassembled instructions.  Multiple
1      selections from the following may be specified as a comma separated
1      string, and invalid options are ignored:
1 
1      'no-aliases'
1           Print the 'raw' instruction mnemonic instead of some pseudo
1           instruction mnemonic.  I.e., print 'daddu' or 'or' instead of
1           'move', 'sll' instead of 'nop', etc.
1 
1      'msa'
1           Disassemble MSA instructions.
1 
1      'virt'
1           Disassemble the virtualization ASE instructions.
1 
1      'xpa'
1           Disassemble the eXtended Physical Address (XPA) ASE
1           instructions.
1 
1      'gpr-names=ABI'
1           Print GPR (general-purpose register) names as appropriate for
1           the specified ABI. By default, GPR names are selected
1           according to the ABI of the binary being disassembled.
1 
1      'fpr-names=ABI'
1           Print FPR (floating-point register) names as appropriate for
1           the specified ABI. By default, FPR numbers are printed rather
1           than names.
1 
1      'cp0-names=ARCH'
1           Print CP0 (system control coprocessor; coprocessor 0) register
1           names as appropriate for the CPU or architecture specified by
1           ARCH.  By default, CP0 register names are selected according
1           to the architecture and CPU of the binary being disassembled.
1 
1      'hwr-names=ARCH'
1           Print HWR (hardware register, used by the 'rdhwr' instruction)
1           names as appropriate for the CPU or architecture specified by
1           ARCH.  By default, HWR names are selected according to the
1           architecture and CPU of the binary being disassembled.
1 
1      'reg-names=ABI'
1           Print GPR and FPR names as appropriate for the selected ABI.
1 
1      'reg-names=ARCH'
1           Print CPU-specific register names (CP0 register and HWR names)
1           as appropriate for the selected CPU or architecture.
1 
1      For any of the options listed above, ABI or ARCH may be specified
1      as 'numeric' to have numbers printed rather than names, for the
1      selected types of registers.  You can list the available values of
1      ABI and ARCH using the '--help' option.
1 
1      For VAX, you can specify function entry addresses with '-M
1      entry:0xf00ba'.  You can use this multiple times to properly
1      disassemble VAX binary files that don't contain symbol tables (like
1      ROM dumps).  In these cases, the function entry mask would
1      otherwise be decoded as VAX instructions, which would probably lead
1      the rest of the function being wrongly disassembled.
1 
1 '-p'
1 '--private-headers'
1      Print information that is specific to the object file format.  The
1      exact information printed depends upon the object file format.  For
1      some object file formats, no additional information is printed.
1 
1 '-P OPTIONS'
1 '--private=OPTIONS'
1      Print information that is specific to the object file format.  The
1      argument OPTIONS is a comma separated list that depends on the
1      format (the lists of options is displayed with the help).
1 
1      For XCOFF, the available options are:
1      'header'
1      'aout'
1      'sections'
1      'syms'
1      'relocs'
1      'lineno,'
1      'loader'
1      'except'
1      'typchk'
1      'traceback'
1      'toc'
1      'ldinfo'
1 
1      Not all object formats support this option.  In particular the ELF
1      format does not use it.
1 
1 '-r'
1 '--reloc'
1      Print the relocation entries of the file.  If used with '-d' or
1      '-D', the relocations are printed interspersed with the
1      disassembly.
1 
1 '-R'
1 '--dynamic-reloc'
1      Print the dynamic relocation entries of the file.  This is only
1      meaningful for dynamic objects, such as certain types of shared
1      libraries.  As for '-r', if used with '-d' or '-D', the relocations
1      are printed interspersed with the disassembly.
1 
1 '-s'
1 '--full-contents'
1      Display the full contents of any sections requested.  By default
1      all non-empty sections are displayed.
1 
1 '-S'
1 '--source'
1      Display source code intermixed with disassembly, if possible.
1      Implies '-d'.
1 
1 '--prefix=PREFIX'
1      Specify PREFIX to add to the absolute paths when used with '-S'.
1 
1 '--prefix-strip=LEVEL'
1      Indicate how many initial directory names to strip off the
1      hardwired absolute paths.  It has no effect without
1      '--prefix='PREFIX.
1 
1 '--show-raw-insn'
1      When disassembling instructions, print the instruction in hex as
1      well as in symbolic form.  This is the default except when
1      '--prefix-addresses' is used.
1 
1 '--no-show-raw-insn'
1      When disassembling instructions, do not print the instruction
1      bytes.  This is the default when '--prefix-addresses' is used.
1 
1 '--insn-width=WIDTH'
1      Display WIDTH bytes on a single line when disassembling
1      instructions.
1 
1 '-W[lLiaprmfFsoRtUuTgAckK]'
1 '--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]'
1 
1      Displays the contents of the DWARF debug sections in the file, if
1      any are present.  Compressed debug sections are automatically
1      decompressed (temporarily) before they are displayed.  If one or
1      more of the optional letters or words follows the switch then only
1      those type(s) of data will be dumped.  The letters and words refer
1      to the following information:
1 
1      'a'
1      '=abbrev'
1           Displays the contents of the '.debug_abbrev' section.
1 
1      'A'
1      '=addr'
1           Displays the contents of the '.debug_addr' section.
1 
1      'c'
1      '=cu_index'
1           Displays the contents of the '.debug_cu_index' and/or
1           '.debug_tu_index' sections.
1 
1      'f'
1      '=frames'
1           Display the raw contents of a '.debug_frame' section.
1 
1      'F'
1      '=frame-interp'
1           Display the interpreted contents of a '.debug_frame' section.
1 
1      'g'
1      '=gdb_index'
1           Displays the contents of the '.gdb_index' and/or
1           '.debug_names' sections.
1 
1      'i'
1      '=info'
1           Displays the contents of the '.debug_info' section.  Note: the
1           output from this option can also be restricted by the use of
1           the '--dwarf-depth' and '--dwarf-start' options.
1 
1      'k'
1      '=links'
1           Displays the contents of the '.gnu_debuglink' and/or
1           '.gnu_debugaltlink' sections.  Also displays the link to a
1           separate dwarf object file (dwo), if one is specified by the
1           DW_AT_GNU_dwo_name or DW_AT_dwo_name attributes in the
1           '.debug_info' section.
1 
1      'K'
1      '=follow-links'
1           Display the contents of any selected debug sections that are
1           found in a linked, separate debug info file.  This can result
1           in multiple versions of the same debug section being displayed
1           if both the main file and the separate debug info file contain
1           sections with the same name.
1 
1           In addition, when displaying DWARF attributes, if a form is
1           found that references the separate debug info file, then the
1           referenced contents will also be displayed.
1 
1      'l'
1      '=rawline'
1           Displays the contents of the '.debug_line' section in a raw
1           format.
1 
1      'L'
1      '=decodedline'
1           Displays the interpreted contents of the '.debug_line'
1           section.
1 
1      'm'
1      '=macro'
1           Displays the contents of the '.debug_macro' and/or
1           '.debug_macinfo' sections.
1 
1      'o'
1      '=loc'
1           Displays the contents of the '.debug_loc' and/or
1           '.debug_loclists' sections.
1 
1      'p'
1      '=pubnames'
1           Displays the contents of the '.debug_pubnames' and/or
1           '.debug_gnu_pubnames' sections.
1 
1      'r'
1      '=aranges'
1           Displays the contents of the '.debug_aranges' section.
1 
1      'R'
1      '=Ranges'
1           Displays the contents of the '.debug_ranges' and/or
1           '.debug_rnglists' sections.
1 
1      's'
1      '=str'
1           Displays the contents of the '.debug_str', '.debug_line_str'
1           and/or '.debug_str_offsets' sections.
1 
1      't'
1      '=pubtype'
1           Displays the contents of the '.debug_pubtypes' and/or
1           '.debug_gnu_pubtypes' sections.
1 
1      'T'
1      '=trace_aranges'
1           Displays the contents of the '.trace_aranges' section.
1 
1      'u'
1      '=trace_abbrev'
1           Displays the contents of the '.trace_abbrev' section.
1 
1      'U'
1      '=trace_info'
1           Displays the contents of the '.trace_info' section.
1 
1      Note: displaying the contents of '.debug_static_funcs',
1      '.debug_static_vars' and 'debug_weaknames' sections is not
1      currently supported.
1 
1 '--dwarf-depth=N'
1      Limit the dump of the '.debug_info' section to N children.  This is
1      only useful with '--debug-dump=info'.  The default is to print all
1      DIEs; the special value 0 for N will also have this effect.
1 
1      With a non-zero value for N, DIEs at or deeper than N levels will
1      not be printed.  The range for N is zero-based.
1 
1 '--dwarf-start=N'
1      Print only DIEs beginning with the DIE numbered N.  This is only
1      useful with '--debug-dump=info'.
1 
1      If specified, this option will suppress printing of any header
1      information and all DIEs before the DIE numbered N.  Only siblings
1      and children of the specified DIE will be printed.
1 
1      This can be used in conjunction with '--dwarf-depth'.
1 
1 '--dwarf-check'
1      Enable additional checks for consistency of Dwarf information.
1 
1 '-G'
1 '--stabs'
1      Display the full contents of any sections requested.  Display the
1      contents of the .stab and .stab.index and .stab.excl sections from
1      an ELF file.  This is only useful on systems (such as Solaris 2.0)
1      in which '.stab' debugging symbol-table entries are carried in an
1      ELF section.  In most other file formats, debugging symbol-table
1      entries are interleaved with linkage symbols, and are visible in
1      the '--syms' output.
1 
1 '--start-address=ADDRESS'
1      Start displaying data at the specified address.  This affects the
1      output of the '-d', '-r' and '-s' options.
1 
1 '--stop-address=ADDRESS'
1      Stop displaying data at the specified address.  This affects the
1      output of the '-d', '-r' and '-s' options.
1 
1 '-t'
1 '--syms'
1      Print the symbol table entries of the file.  This is similar to the
1      information provided by the 'nm' program, although the display
1      format is different.  The format of the output depends upon the
1      format of the file being dumped, but there are two main types.  One
1      looks like this:
1 
1           [  4](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss
1           [  6](sec  1)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x00000000 fred
1 
1      where the number inside the square brackets is the number of the
1      entry in the symbol table, the SEC number is the section number,
1      the FL value are the symbol's flag bits, the TY number is the
1      symbol's type, the SCL number is the symbol's storage class and the
1      NX value is the number of auxilary entries associated with the
1      symbol.  The last two fields are the symbol's value and its name.
1 
1      The other common output format, usually seen with ELF based files,
1      looks like this:
1 
1           00000000 l    d  .bss   00000000 .bss
1           00000000 g       .text  00000000 fred
1 
1      Here the first number is the symbol's value (sometimes refered to
1      as its address).  The next field is actually a set of characters
1      and spaces indicating the flag bits that are set on the symbol.
1      These characters are described below.  Next is the section with
1      which the symbol is associated or _*ABS*_ if the section is
1      absolute (ie not connected with any section), or _*UND*_ if the
1      section is referenced in the file being dumped, but not defined
1      there.
1 
1      After the section name comes another field, a number, which for
1      common symbols is the alignment and for other symbol is the size.
1      Finally the symbol's name is displayed.
1 
1      The flag characters are divided into 7 groups as follows:
1      'l'
1      'g'
1      'u'
1      '!'
1           The symbol is a local (l), global (g), unique global (u),
1           neither global nor local (a space) or both global and local
1           (!).  A symbol can be neither local or global for a variety of
1           reasons, e.g., because it is used for debugging, but it is
1           probably an indication of a bug if it is ever both local and
1           global.  Unique global symbols are a GNU extension to the
1           standard set of ELF symbol bindings.  For such a symbol the
1           dynamic linker will make sure that in the entire process there
1           is just one symbol with this name and type in use.
1 
1      'w'
1           The symbol is weak (w) or strong (a space).
1 
1      'C'
1           The symbol denotes a constructor (C) or an ordinary symbol (a
1           space).
1 
1      'W'
1           The symbol is a warning (W) or a normal symbol (a space).  A
1           warning symbol's name is a message to be displayed if the
1           symbol following the warning symbol is ever referenced.
1 
1      'I'
1      'i'
1           The symbol is an indirect reference to another symbol (I), a
1           function to be evaluated during reloc processing (i) or a
1           normal symbol (a space).
1 
1      'd'
1      'D'
1           The symbol is a debugging symbol (d) or a dynamic symbol (D)
1           or a normal symbol (a space).
1 
1      'F'
1      'f'
1      'O'
1           The symbol is the name of a function (F) or a file (f) or an
1           object (O) or just a normal symbol (a space).
1 
1 '-T'
1 '--dynamic-syms'
1      Print the dynamic symbol table entries of the file.  This is only
1      meaningful for dynamic objects, such as certain types of shared
1      libraries.  This is similar to the information provided by the 'nm'
1      program when given the '-D' ('--dynamic') option.
1 
1      The output format is similar to that produced by the '--syms'
1      option, except that an extra field is inserted before the symbol's
1      name, giving the version information associated with the symbol.
1      If the version is the default version to be used when resolving
1      unversioned references to the symbol then it's displayed as is,
1      otherwise it's put into parentheses.
1 
1 '--special-syms'
1      When displaying symbols include those which the target considers to
1      be special in some way and which would not normally be of interest
1      to the user.
1 
1 '-U [D|I|L|E|X|H]'
1 '--unicode=[DEFAULT|INVALID|LOCALE|ESCAPE|HEX|HIGHLIGHT]'
1      Controls the display of UTF-8 encoded mulibyte characters in
1      strings.  The default ('--unicode=default') is to give them no
1      special treatment.  The '--unicode=locale' option displays the
1      sequence in the current locale, which may or may not support them.
1      The options '--unicode=hex' and '--unicode=invalid' display them as
1      hex byte sequences enclosed by either angle brackets or curly
1      braces.
1 
1      The '--unicode=escape' option displays them as escape sequences
1      (\UXXXX) and the '--unicode=highlight' option displays them as
1      escape sequences highlighted in red (if supported by the output
1      device).  The colouring is intended to draw attention to the
1      presence of unicode sequences where they might not be expected.
1 
1 '-V'
1 '--version'
1      Print the version number of 'objdump' and exit.
1 
1 '-x'
1 '--all-headers'
1      Display all available header information, including the symbol
1      table and relocation entries.  Using '-x' is equivalent to
1      specifying all of '-a -f -h -p -r -t'.
1 
1 '-w'
1 '--wide'
1      Format some lines for output devices that have more than 80
1      columns.  Also do not truncate symbol names when they are
1      displayed.
1 
1 '-z'
1 '--disassemble-zeroes'
1      Normally the disassembly output will skip blocks of zeroes.  This
1      option directs the disassembler to disassemble those blocks, just
1      like any other data.
1