[EXT_EP-12680] Disassembly fails in VS Code and GNU Arm objdump due to presence of .TI.phattrs section Created: 20/Jun/25  Updated: 31/Jul/25  Resolved: 31/Jul/25

Status: Fixed
Project: Embedded Software & Tools
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: TI User Assignee: TI User
Resolution: Fixed Votes: 0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Product: Code Generation Tools
Internal ID: CODEGEN-14115
Found In Release: ARMCLANG_4.0.0.LTS
ARMCLANG_3.2.0.LTS
ARMCLANG_5.0.0.LTS*
Fix In Release: ARMCLANG_4.0.4.LTS*
ARMCLANG_3.2.4.LTS*
ARMCLANG_5.0.0.LTS*
Affected Platform/Device: default
Workaround: Use tiarmobjcopy to change the sh_type of section .TI.phattrs from SHT_TI_PHATTRS to SHT_PROGBITS.

To change the file in place:
tiarmobjcopy --set-section-type=.TI.phattrs=1 executable_file.out

To keep the old file and create a new one:
tiarmobjcopy --set-section-type=.TI.phattrs=1 executable_file.out new.out

 Description   

An executable file generated with the presence of TI-specific section `.TI.phattrs` is not debuggable within VS Code (OpenOCD with GDB) and will fail to disassemble.  This issue manifests with BLE examples in Simplelink SDK. Furthermore, GNU arm-none-eabi-objdump is used to disassemble the same executable, the following error is generated:

arm-none-eabi-objdump: basic_ble_LP_EM_CC2340R53_freertos_ticlang.out: unknown type [0x7f000004] section `.TI.phattrs`

basic_ble_LP_EM_CC2340R53_freertos_ticlang.out:     file format elf32-little

arm-none-eabi-objdump: can't disassemble for architecture UNKNOWN!

If the section is removed using tiarmobjcopy, or if the section type is changed using tiarmobjcopy, the disassembly will be displayed correctly, and breakpoints can be set in disassembly using VS Code.

The section `.TI.phattrs` may be introduced during the link step when the location attribute is used or when overlapping memory regions are used.

Note that SHT_TI_PHATTRS reflects a section type value within a range of processor specific values .  It is the responsibility of tools to skip unknown sections in this range, but the GNU tools and the underlying Binary File Descriptor (BFD) library presently don't.


Generated at Fri May 01 09:57:45 CDT 2026 using Jira 10.3.7#10030007-sha1:a563685562f94d165eb4e158cfb2a142338d8c54.