[llvm-bugs] [Bug 26191] New: Info from .cfi directives should by default go into .debug_frame, not .eh_frame section
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Jan 18 04:02:17 PST 2016
https://llvm.org/bugs/show_bug.cgi?id=26191
Bug ID: 26191
Summary: Info from .cfi directives should by default go into
.debug_frame, not .eh_frame section
Product: tools
Version: trunk
Hardware: Macintosh
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: llvm-as
Assignee: unassignedbugs at nondot.org
Reporter: bart.jacobs at cs.kuleuven.be
CC: llvm-bugs at lists.llvm.org
Classification: Unclassified
It seems that the LLVM assembler currently, at least on OS X, always emits the
call frame information/stack unwinding information specified by the .cfi_xxx
directives into the .eh_frame section instead of the .debug_frame section.
I would argue that this is unsafe behavior. The user may only have the
debugging scenario in mind, not the run-time stack unwinding scenario. By
emitting the unwinding info into .eh_frame, the assembler causes the platform's
unwinder to walk the program's stack at run time (if the program calls into
Cocoa or some other Objective-C library, for example), possibly causing the
program to crash if the unwind info specified in the .cfi directives is
incorrect. (This has been causing my application to crash; see
http://caml.inria.fr/mantis/view.php?id=7118 .) The user may not be aware of
this source of instability, and may therefore be less careful about getting the
.cfi directives right.
As a general principle, I would propose that participating in the run-time
stack unwinding story should be an opt-in, not a default, due to the stability
risks involved.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160118/3d7c75c9/attachment-0001.html>
More information about the llvm-bugs
mailing list