llvm-project/lldb
Ted Woodward 91635e0cef lldb-mi: -var-update can hang when traversing complex types with pointers
Summary:
-var-update calls CMICmdCmdVarUpdate::ExamineSBValueForChange to check if a varObj has been updated. It checks that the varObj is updated, then recurses on all of its children. If a child is a pointer pointing back to a parent node, this will result in an infinite loop, and lldb-mi hanging.

The problem is exposed by packages/Python/lldbsuite/test/tools/lldb-mi/variable/TestMiVar.py, but this test is skipped everywhere.

This patch changes ExamineSBValueForChange to not traverse children of varObjs that are pointers.

Reviewers: ki.stfu, zturner, clayborg, abidh

Reviewed By: clayborg

Subscribers: lldb-commits

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

llvm-svn: 312270
2017-08-31 19:22:33 +00:00
..
cmake [CMake] Add checks for libcompression 2017-07-28 15:39:51 +00:00
docs Adding Support for Error Strings in Remote Packets 2017-07-12 11:15:34 +00:00
examples Add an example command to toggle between disassembly-only and source mode. 2017-04-20 21:51:27 +00:00
include/lldb Now a ppc64le binary is correctly detected: 2017-08-30 18:36:48 +00:00
lit Change remaining references to lit.util.capture to use subprocess.check_output. 2017-07-06 21:46:47 +00:00
lldb.xcodeproj Add the DWARF DWP files to the Xcode project. 2017-08-25 17:48:01 +00:00
lldb.xcworkspace Revert r275223, which committed the wrong thing. 2016-07-12 23:31:42 +00:00
packages/Python/lldbsuite test: fix missed test 2017-08-23 18:05:19 +00:00
resources Bump the lldb version # in the xcode project files from 2016-03-15 04:36:11 +00:00
scripts Fixed a typo in the example (getName -> GetName) 2017-08-24 18:01:50 +00:00
source [TypeSystem] Reduce code duplication merging two almost identical functions. 2017-08-31 18:47:49 +00:00
test cmake build needs to run tests AND collect results 2017-07-18 23:45:06 +00:00
third_party/Python/module *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
tools lldb-mi: -var-update can hang when traversing complex types with pointers 2017-08-31 19:22:33 +00:00
unittests [IPv6] Fix a bug in the IPv6 listen behavior 2017-08-29 16:13:41 +00:00
utils *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00
www The llvm.org bugzilla moved. 2017-07-13 00:36:21 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format Updated .clang-format rules so bring LLDB in line with LLVM standards. 2016-09-06 17:19:00 +00:00
.gitignore test infra: clear file-charged issues on rerun of file 2016-10-01 00:17:08 +00:00
CMakeLists.txt [CMake] Enable OS_LOG support on Darwin 2017-07-28 15:39:50 +00:00
CODE_OWNERS.txt Greg Clayton is no longer working at Apple, he will continue to 2017-03-01 00:00:45 +00:00
INSTALL.txt Changed builld-llvm.py to use .json files 2017-02-23 02:21:34 +00:00
LICENSE.TXT
use_lldb_suite_root.py *** This commit represents a complete reformatting of the LLDB source code 2016-09-06 20:57:50 +00:00