ARM Assembly Language Tools v15.9.0.STS User's Guide
SPNU118 - REVISED SEPTEMBER, 2015

A Symbolic Debugging Directives

The assembler supports several directives that the ARM C/C++ compiler uses for symbolic debugging.

These directives are not meant for use by assembly-language programmers. They require arguments that can be difficult to calculate manually, and their usage must conform to a predetermined agreement between the compiler, the assembler, and the debugger. This appendix documents these directives for informational purposes only.

A.5 DWARF Debugging Format

A subset of the DWARF symbolic debugging directives are always listed in the assembly language file that the compiler creates for program analysis purposes. To list the complete set used for full symbolic debug, invoke the compiler with the --symdebug:dwarf option, as shown below:

armcl --symdebug:dwarf --keep_asm input_file

The --keep_asm option instructs the compiler to retain the generated assembly file.

To disable the generation of all symbolic debug directives, invoke the compiler with the -symdebug:none option:

armcl --symdebug:none --keep_asm input_file

The DWARF debugging format consists of the following directives:

  • The .dwtag and .dwendtag directives define a Debug Information Entry (DIE) in the .debug_info section.
  • The .dwattr directive adds an attribute to an existing DIE.
  • The .dwpsn directive identifies the source position of a C/C++ statement.
  • The .dwcie and .dwendentry directives define a Common Information Entry (CIE) in the .debug_frame section.
  • The .dwfde and .dwendentry directives define a Frame Description Entry (FDE) in the .debug_frame section.
  • The .dwcfi directive defines a call frame instruction for a CIE or FDE.

A.6 Debug Directive Syntax

Table A-1 is an alphabetical listing of the symbolic debugging directives. For information on the C/C++ compiler, refer to the ARM Optimizing C/C++ Compiler User's Guide.

Table A-1 Symbolic Debugging Directives

Label Directive Arguments
.block [beginning line number]
.dwattr DIE label,DIE attribute name(DIE attribute value)[,DIE attribute name(attribute value) [, ...]
.dwcfi call frame instruction opcode[,operand[,operand]]
CIE label .dwcie version, return address register
.dwendentry
.dwendtag
.dwfde CIE label
.dwpsn "filename", line number, column number
DIE label .dwtag DIE tag name,DIE attribute name(DIE attribute value)[,DIE attribute name(attribute value) [, ...]
.endblock [ending line number]
.endfunc [ending line number[,register mask[, frame size]]]
.eos
.etag name[, size]
.file "filename"
.func [beginning line number]
.line line number[, address]
.member name, value[, type, storage class, size, tag, dims]
.stag name[, size]
.sym name, value[, type, storage class, size, tag, dims]
.utag name[, size]
Submit Documentation Feedback

Copyright© 2015, Texas Instruments Incorporated. An IMPORTANT NOTICE for this document addresses availability, warranty, changes, use in safety-critical applications, intellectual property matters and other important disclaimers.