[all-commits] [llvm/llvm-project] e05af0: [lldb/StackFrameList] Convert assert to defensive ...

Vedant Kumar via All-commits all-commits at lists.llvm.org
Tue Feb 4 10:43:59 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e05af081bf7cbc738b2e4cdfa91054fff0153ce3
      https://github.com/llvm/llvm-project/commit/e05af081bf7cbc738b2e4cdfa91054fff0153ce3
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2020-02-04 (Tue, 04 Feb 2020)

  Changed paths:
    M lldb/source/Target/StackFrameList.cpp

  Log Message:
  -----------
  [lldb/StackFrameList] Convert assert to defensive check in SynthesizeTailCallFrames

In order to synthesize tail call frames, the stack frame list must not
be empty (otherwise, there is no "previous" frame to infer a tail call
from).

This case is hard to hit. To trigger it, we must first fail to push
`unwind_frame_sp` because we either fail to get its SymbolContext, or
given its SymbolContext the GetParentOfInlineScope call fails. This
causes m_concrete_frames_fetched to be incremented while m_frames
remains empty. Then, the next frame in the stack may fail within
SynthesizeTailCallFrames. This crash arose during a kernel debugging
session.

rdar://59147051


  Commit: 047c041277543564d482cdc297c4e82de0fd2758
      https://github.com/llvm/llvm-project/commit/047c041277543564d482cdc297c4e82de0fd2758
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2020-02-04 (Tue, 04 Feb 2020)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/functionalities/param_entry_vals/basic_entry_values_x86_64/TestBasicEntryValuesX86_64.py

  Log Message:
  -----------
  [lldb/test] Skip TestBasicEntryValuesX86_64 due to llvm.org/PR44774


Compare: https://github.com/llvm/llvm-project/compare/28cd54cdbba6...047c04127754


More information about the All-commits mailing list