Fix a crasher in StackFrame::GetValueForVariableExpressionPath()
authorGreg Clayton <gclayton@apple.com>
Mon, 11 Mar 2019 18:16:20 +0000 (18:16 +0000)
committerGreg Clayton <gclayton@apple.com>
Mon, 11 Mar 2019 18:16:20 +0000 (18:16 +0000)
commit0d6f681292d5ae8ed5df0cc29eaf95928d264d43
tree4e0e4fef0437810ed06563772ec5ef48a7c5af3d
parent06ae0253456f932ae20493f332ca1f4c7974501c
Fix a crasher in StackFrame::GetValueForVariableExpressionPath()

There was a crash that would happen if an IDE would ask for a child of a shared pointer via any SB API call that ends up calling StackFrame::GetValueForVariableExpressionPath(). The previous code expects an error to be set describing why the synthetic child of a type was not able to be found, but we have some synthetic child providers that weren't setting the error and returning an empty value object shared pointer. This fixes that to ensure we don't lose our debug session by crashing, fully tests GetValueForVariableExpressionPath functionality, and ensures we don't crash on GetValueForVariableExpressionPath() in the future.

Differential Revision: https://reviews.llvm.org/D59200

llvm-svn: 355850
lldb/packages/Python/lldbsuite/test/functionalities/var_path/Makefile [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/functionalities/var_path/TestVarPath.py [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/functionalities/var_path/main.cpp [new file with mode: 0644]
lldb/source/Target/StackFrame.cpp