[Bug 206384] llvm libunwind segfaults while building lang/polyml
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Jan 19 20:14:25 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=206384
--- Comment #2 from Ed Maste <emaste at freebsd.org> ---
The large stack usage comes from this function -- note sub $0x878,%rsp:
template <typename A, typename R>
void UnwindCursor<A, R>::setInfoBasedOnIPRegister(bool isReturnAddress) {
92d0: 55 push %rbp
92d1: 48 89 e5 mov %rsp,%rbp
92d4: 41 57 push %r15
92d6: 41 56 push %r14
92d8: 41 55 push %r13
92da: 41 54 push %r12
92dc: 53 push %rbx
92dd: 48 81 ec 78 08 00 00 sub $0x878,%rsp
from the stack-allocated typename CFI_Parser<A>::PrologInfo prolog
1229 #if _LIBUNWIND_SUPPORT_DWARF_UNWIND
1230 // There is no static unwind info for this pc. Look to see if an FDE
was
1231 // dynamically registered for it.
1232 pint_t cachedFDE = DwarfFDECache<A>::findFDE(0, pc);
1233 if (cachedFDE != 0) {
1234 CFI_Parser<LocalAddressSpace>::FDE_Info fdeInfo;
1235 CFI_Parser<LocalAddressSpace>::CIE_Info cieInfo;
1236 const char *msg = CFI_Parser<A>::decodeFDE(_addressSpace,
1237 cachedFDE, &fdeInfo,
&cieInfo);
1238 if (msg == NULL) {
1239 typename CFI_Parser<A>::PrologInfo prolog;
1240 if (CFI_Parser<A>::parseFDEInstructions(_addressSpace, fdeInfo,
cieInfo,
1241 pc,
&prolog)) {
(lldb) p sizeof(PrologInfo)
(unsigned long) $10 = 1952
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list