Describe the location of Traceback Tables #113

Open
opened 2 years ago by Paul Clarke · 1 comments

Section 3.8.3, "Traceback Tables" describes the content of Traceback Tables, but does not indicate where they are located.

The document "64-bit PowerPC ELF Application Binary Interface Supplement 1.9" (https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#TRACEBACK), section 3.3 has better information:

To support debuggers and exception handlers, the 64-bit PowerPC ELF ABI defines traceback tables. Compilers must support generation of at least the mandatory part of traceback tables, and system libraries should contain the mandatory part. Compilers should provide an option to turn off traceback table generation to save space when the information is not needed.

Traceback tables are intended to be compatible with the 64-bit PowerOpen ABI.

Compilers should generate a traceback table following the end of the code for every function. Debuggers and exception handlers can locate the traceback tables by scanning forward from the instruction address at the point of interruption. The beginning of the traceback table is marked by a word of zeroes, which is an illegal instruction. If read-only constants are compiled into the same section as the function code, they must follow the traceback table. A word of zeroes as read-only data must not be the first word following the code for a function. A traceback table is word-aligned.

Words to that effect should be added to the ELFv2-ABI document.

Section 3.8.3, "Traceback Tables" describes the content of Traceback Tables, but does not indicate where they are located. The document "64-bit PowerPC ELF Application Binary Interface Supplement 1.9" (https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#TRACEBACK), section 3.3 has better information: > To support debuggers and exception handlers, the 64-bit PowerPC ELF ABI defines traceback tables. Compilers must support generation of at least the mandatory part of traceback tables, and system libraries should contain the mandatory part. Compilers should provide an option to turn off traceback table generation to save space when the information is not needed. > > Traceback tables are intended to be compatible with the 64-bit PowerOpen ABI. > > Compilers should generate a traceback table following the end of the code for every function. Debuggers and exception handlers can locate the traceback tables by scanning forward from the instruction address at the point of interruption. The beginning of the traceback table is marked by a word of zeroes, which is an illegal instruction. If read-only constants are compiled into the same section as the function code, they must follow the traceback table. A word of zeroes as read-only data must not be the first word following the code for a function. A traceback table is word-aligned. Words to that effect should be added to the ELFv2-ABI document.

Agreed. We probably do not want to make the TBT required for ELFv2 (it is effectively optional even in the older ABIs), so we should not have the exact same text. But we should say how to find the table at least!

Agreed. We probably do not want to make the TBT required for ELFv2 (it is effectively optional even in the older ABIs), so we should not have the exact same text. But we should say how to find the table at least!
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: systemsoftware/ELFv2-ABI#113
Loading…
There is no content yet.