summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
...
* [lldb][NFC] Get rid of C-strings in HandleOptionCompletionRaphael Isemann2019-08-281-17/+11
| | | | llvm-svn: 370179
* [lldb][NFC] Update documentation of Handle[Argument]CompletionRaphael Isemann2019-08-281-12/+2
| | | | | | | We no longer have return values or any of the mentioned arguments in these functions since the introduction of CompletionRequest. llvm-svn: 370174
* Update name of objc runtime SPI function we call for class names.Jason Molenda2019-08-281-1/+1
| | | | | | | | | | A new SPI was added to the objc runtime to get class names without any demangling; AppleObjCRuntimeV2::ParseClassInfoArray was using the original prototype name but had not been updated for the final name yet, so lldb was falling back to the old function and doing extra work for classes that were demangled. This commit fixes that. llvm-svn: 370152
* [lit] Fix the way we check if an environment var is setJonas Devlieghere2019-08-281-1/+1
| | | | | | The old method would throw a KeyError. llvm-svn: 370138
* [test] Disable TestConcurrentManySignals on Darwin.Jonas Devlieghere2019-08-281-0/+2
| | | | | | This test is flaky on GreenDragon. Disable it until we figure out why. llvm-svn: 370136
* [lit] Don't set DYLD_LIBRARY_PATH when DYLD_INSERT_LIBRARIES is set.Jonas Devlieghere2019-08-281-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Setting DYLD_INSERT_LIBRARIES to the Asan runtime and DYLD_LIBRARY_PATH to the LLVM shared library dir causes the test suite to crash with a segfault. We see this on the LLDB sanitized bot [1] on GreenDragon. I've spent some time investigating, but I'm not sure what's going on (yet). Originally I thought this was because we were building compiler-rt and were loading an incompatible, just-built Asan library. However, the issue persists even without compiler-rt. It doesn't look like the Asan runtime is opening any other libraries that might be found in LLVM's shared library dir and talking to the team confirms that. Another possible explanation is that we're loading lldb form a place we don't expect, but that doesn't make sense either, because DYLD_LIBRARY_PATH is always set without the crash. I tried different Python versions and interpreters but the issue persist. As a (temporary?) workaround I propose not setting DYLD_LIBRARY_PATH when DYLD_INSERT_LIBRARIES is set so we can turn the Asan bot on again and get useful results. [1] http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-sanitized/ Differential revision: https://reviews.llvm.org/D66845 llvm-svn: 370135
* Revert "[lldb] Move redundant persistent variable counter to ↵Adrian Prantl2019-08-274-12/+18
| | | | | | | | | | | | ClangPersistentVariables" This reverts commit r367842 since it wasn't quite as NFC as advertised and broke Swift support. See https://reviews.llvm.org/D46083 for the rationale behind the original functionality. rdar://problem/54619322 llvm-svn: 370126
* [dotest] Remove check for LLDB_TESTSUITE_FORCE_FINISHJonas Devlieghere2019-08-271-6/+0
| | | | llvm-svn: 370120
* [Platform/Android] Read the adb server from an env variable if setNathan Lanza2019-08-271-1/+6
| | | | | | | | | | | | | | | Summary: The environment variable ANDROID_ADB_SERVER_PORT can be defined to have adbd litsen on a different port. Teach lldb how to understand this via simply checking the env var. Reviewers: xiaobai, clayborg Subscribers: srhines Differential Revision: https://reviews.llvm.org/D66689 llvm-svn: 370106
* [dotest] Remove results portJonas Devlieghere2019-08-278-72/+9
| | | | | | | | | | The results port was used by dosep.py to deal with test results coming form different processes. With dosep.py gone, I don't think we need this any longer. Differential revision: https://reviews.llvm.org/D66811 llvm-svn: 370090
* [lldb] Fix x86 compilationTatyana Krasnukha2019-08-276-21/+19
| | | | | | | | Differential Revision: https://reviews.llvm.org/D66655 Patch by Leonid Mashinskiy llvm-svn: 370078
* [lldb][NFC] Add missing invalid_core_file to TestTargetCommand testRaphael Isemann2019-08-271-0/+1
| | | | llvm-svn: 370057
* Stabilize TestIOHandlerCompletionPavel Labath2019-08-271-1/+2
| | | | | | | | | | | | pexpect gives as raw data going to a terminal. This means that if the completed line does not fit the emulated line, the returned data will contain line breaks. On my machine these line breaks happened to be inside the "iohandler/completion" string that the test was searching for. Work around this by telling pexpect to emulate a very wide terminal. llvm-svn: 370054
* [lldb][NFC] Add some tests for the target subcommandsRaphael Isemann2019-08-271-1/+145
| | | | llvm-svn: 370050
* [lldb][NFC] Give added test method a unique nameRaphael Isemann2019-08-271-2/+2
| | | | | | | | Otherwise dotest doesn't run the test and just lets it always pass. Also update the comment to explain that we do directory and not file completion. llvm-svn: 370047
* [ASTImporter] Fix name conflict handling with different strategiesGabor Marton2019-08-271-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are numorous flaws about the name conflict handling, this patch attempts fixes them. Changes in details: * HandleNameConflict return with a false DeclarationName Hitherto we effectively never returned with a NameConflict error, even if the preceding StructuralMatch indicated a conflict. Because we just simply returned with the parameter `Name` in HandleNameConflict and that name is almost always `true` when converted to `bool`. * Add tests which indicate wrong NameConflict handling * Add to ConflictingDecls only if decl kind is different Note, we might not indicate an ODR error when there is an existing record decl and a enum is imported with same name. But there are other cases. E.g. think about the case when we import a FunctionTemplateDecl with name f and we found a simple FunctionDecl with name f. They overload. Or in case of a ClassTemplateDecl and CXXRecordDecl, the CXXRecordDecl could be the 'templated' class, so it would be false to report error. So I think we should report a name conflict error only when we are 100% sure of that. That is why I think it should be a general pattern to report the error only if the kind is the same. * Fix failing ctu test with EnumConstandDecl In ctu-main.c we have the enum class 'A' which brings in the enum constant 'x' with value 0 into the global namespace. In ctu-other.c we had the enum class 'B' which brought in the same name ('x') as an enum constant but with a different enum value (42). This is clearly an ODR violation in the global namespace. The solution was to rename the second enum constant. * Introduce ODR handling strategies Reviewers: a_sidorin, shafik Differential Revision: https://reviews.llvm.org/D59692 llvm-svn: 370045
* [lldb] Allow partial completions to fix directory completion.Raphael Isemann2019-08-275-9/+53
| | | | | | | | | | | | On the command line we usually insert a space after a completion to indicate that the completion was successful. After the completion API refactoring, this also happens with directories which essentially breaks file path completion (as adding a space terminates the path and starts a new arg). This patch restores the old behavior by again allowing partial completions. Also extends the iohandler and SB API tests as the implementation for this is different in Editline and SB API. llvm-svn: 370043
* DWARFExpression: Simplify class interfacePavel Labath2019-08-2710-85/+71
| | | | | | | | | | | | | | | | | Summary: The DWARFExpression methods have a lot of arguments. This removes two of them by removing the ability to slice the expression via two offset+size parameters. This is a functionality that it is not always needed, and when it is, we already have a different handy way of slicing a data extractor which we can use instead. Reviewers: JDevlieghere, clayborg Subscribers: aprantl, lldb-commits Differential Revision: https://reviews.llvm.org/D66745 llvm-svn: 370027
* Fix an unused variable warning in no-assert buildsPavel Labath2019-08-271-0/+1
| | | | llvm-svn: 370026
* Fix TestStdCXXDisassembly.pyPavel Labath2019-08-271-1/+1
| | | | | | missing decorator import. llvm-svn: 370020
* CommandObjectExpression: Fix a misleading-indentation warningPavel Labath2019-08-271-96/+94
| | | | llvm-svn: 370019
* [test] Disable two of the recently (re)enabled tests on Windows.Jonas Devlieghere2019-08-272-0/+2
| | | | | | This disables two tests on Windows that I re-enabled in r369995. llvm-svn: 370003
* [ConnectionFileDescriptor] Add shutdown check in ::Write.Jonas Devlieghere2019-08-271-3/+12
| | | | | | | | | | | | The disconnect method sets the shutdown flag to true. This currently only prevents any reads from happening, but not writes, which is incorrect. Presumably this was just an oversight when adding synchronization to the class. This adds the same shutdown check to the Write method. Over-the-shoulder reviewed by Jim! llvm-svn: 370002
* [dotest] Remove long running test "decorator" and re-enable tests.Jonas Devlieghere2019-08-2711-48/+0
| | | | | | | | | | | | Today I discovered the skipLongRunningTest decorator and to my surprise all the tests were passing without the decorator. They don't seem to be that expensive either, they take a few seconds but we have tests that take much longer than that. As such I propose to remove the decorator and enable them by default. Differential revision: https://reviews.llvm.org/D66774 llvm-svn: 369995
* Send error message on failed attach from debugerserver.Jason Molenda2019-08-271-2/+18
| | | | | | | | | | | | Instead of using a magic return error code from debugserver to indicate that an attach failed because of SIP being enabled in RNBRemote::HandlePacket_v, use the extended error reporting that Pavel added to lldb/lldb-server in https://reviews.llvm.org/D45573 <rdar://problem/39398385> llvm-svn: 369990
* [build_exception] Decode build failure messagesVedant Kumar2019-08-261-1/+1
| | | | | | | This is so that the test harness pretty-prints build error messages in trace mode, instead of dumping a raw python bytes object. llvm-svn: 369987
* [Core] GetAPInt should return an OptionalAlex Langford2019-08-261-16/+19
| | | | | | | | The current implementation returns a bool for indicating success and whether or not the APInt passed by reference was populated. Instead of doing that, I think it makes more sense to return an Optional<APInt>. llvm-svn: 369970
* [lldb][NFC] Remove dead code that handles situations where LLDB has no dummy ↵Raphael Isemann2019-08-269-377/+226
| | | | | | | | | | | | | | | | | | | | | | target Summary: We always have a dummy target, so any error handling regarding a missing dummy target is dead code now. Also makes the CommandObject methods that return Target& to express this fact in the API. This patch just for the CommandObject part of LLDB. I'll migrate the rest of LLDB in a follow-up patch that's WIP. Reviewers: labath Reviewed By: labath Subscribers: abidh, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D66737 llvm-svn: 369939
* TestFunctionStarts.py: add synchronizationFrederic Riss2019-08-262-2/+21
| | | | | | | | | We have started to see the no_binary version of this test fail. The reason is that the binary was being removed before the spawn actually launched the inferior. Add a simple filesystem based synchronization to avoid this race. llvm-svn: 369930
* [dotest] Print invocation when encountering an error.Jonas Devlieghere2019-08-261-2/+6
| | | | | | | | | | | With this patch dotest.py will print the full invocation whenever it fails to parse its arguments. The dotest invocation is usually build up with different inputs, potentially coming from CMake, lldb-dotest, lit or passed directly. This can make debugging hard, especially on CI, where there might be another layer of indirection. This aims to make that a bit easier. llvm-svn: 369922
* Really fix the type mismatch error in GDBRemoteCommunicationServerCommonPavel Labath2019-08-261-2/+2
| | | | | | | | My previous attempt in attempt in r369904 actually broke the 32bit build because File::Read expects to take a reference to size_t. Fix the warning by using SIZE_MAX to denote failure instead. llvm-svn: 369910
* [ProcessWindows] Remove equivalent macrosTatyana Krasnukha2019-08-262-4/+4
| | | | llvm-svn: 369908
* Move ProcessInstanceInfoTest to UtilityPavel Labath2019-08-263-1/+1
| | | | | | The class under test was moved in r355342. This moves the test code too. llvm-svn: 369907
* ProcessInstanceInfo: Fix dumping of invalid user idsPavel Labath2019-08-262-11/+44
| | | | | | | Don't attempt to print invalid user ids. Previously, these would come out as UINT32_MAX, or as an assertion failure. llvm-svn: 369906
* Fix windows build after r369894Pavel Labath2019-08-261-6/+4
| | | | | | | | | | | Constructing a std::vector from a llvm::map_range fails on windows, apparently because std::vector expects the input iterator to have a const operator* (map_range iterator has a non-const one). This avoids the cleverness and unrolls the map-loop manually (which is also slightly shorter). llvm-svn: 369905
* Fix a type mismatch error in GDBRemoteCommunicationServerCommonPavel Labath2019-08-261-1/+1
| | | | | | | GetU64 returns a uint64_t. Don't store it in size_t as that is only 32-bit on 32-bit platforms. llvm-svn: 369904
* Postfix: move more code out of the PDB pluginPavel Labath2019-08-265-77/+97
| | | | | | | | | | | | | | | | Summary: Previously we moved the code which parses a single expression out of the PDB plugin, because that was useful for DWARF expressions in breakpad. However, FPO programs are used in breakpad files too (when unwinding on windows), so this completes the job, and moves the rest of the FPO parser too. Reviewers: amccarth, aleksandr.urakov Subscribers: aprantl, markmentovai, rnk, lldb-commits Differential Revision: https://reviews.llvm.org/D66634 llvm-svn: 369894
* Breakpad: Add support for parsing STACK WIN recordsPavel Labath2019-08-263-4/+151
| | | | | | | | | | | | Summary: The fields that aren't useful for us right now are simply ignored. Reviewers: amccarth, markmentovai Subscribers: rnk, lldb-commits Differential Revision: https://reviews.llvm.org/D66633 llvm-svn: 369892
* [lldb] Construct the dummy target when the first Debugger object is constructedRaphael Isemann2019-08-262-5/+5
| | | | | | | | | | | | | | | | | | | | | Summary: We should always have a dummy target, so we might as well construct it directly when we create a Debugger object. The idea is that if this patch doesn't cause any problems that we can get rid of all the logic that handles situations where we don't have a dummy target (as all that code is currently untested as there seems to be no way to have no dummy target in LLDB). Reviewers: labath, jingham Reviewed By: labath, jingham Subscribers: jingham, abidh, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D66581 llvm-svn: 369885
* [lldb][NFC] Add ProcessInfo::GetNameAsStringRef to simplify some codeRaphael Isemann2019-08-264-15/+7
| | | | llvm-svn: 369880
* [NFC] Fix comments and formatting.Jonas Devlieghere2019-08-232-55/+60
| | | | llvm-svn: 369827
* Skip tail call frame tests when dwarf_version < 4Vedant Kumar2019-08-239-8/+17
| | | | | | rdar://problem/54656572 llvm-svn: 369821
* Upstream support for macCatalyst Mach-O binaries.Adrian Prantl2019-08-233-146/+237
| | | | | | | | | | | | On macOS one Mach-O slice can contain multiple load commands: One load command for being loaded into a macOS process and one load command for being loaded into a macCatalyst process. This patch adds support for the new load command and makes sure ObjectFileMachO returns the Architecture that matches the Module. Differential Revision: https://reviews.llvm.org/D66626 llvm-svn: 369814
* Windows: explicitly cast constants to `DWORD`Saleem Abdulrasool2019-08-231-2/+2
| | | | | | | | | | STATUS_SINGLE_STEP and STATUS_BREAKPOINT are defined as 0x8------ which is negative and thus can't be implicitly narrowed to a DWORD which is unsigned. The value is defined differently across winnt.h and ntstatus.h. Patch by Gwen Mittertreiner! llvm-svn: 369788
* [Symbol] Decouple clang from DeclVendorAlex Langford2019-08-2310-10/+69
| | | | | | | | | | Summary: This removes DeclVendor's dependency on clang (and ClangASTContext). DeclVendor has no need to know about specific TypeSystems. Differential Revision: https://reviews.llvm.org/D66628 llvm-svn: 369735
* [LLDB] Address post-commit code review feedback.Jonas Devlieghere2019-08-232-4/+2
| | | | | | | This patch addresses Adrian McCarthy's code review feedback in https://reviews.llvm.org/D66447 llvm-svn: 369731
* Add missing dot.Adrian Prantl2019-08-221-1/+1
| | | | llvm-svn: 369712
* Extend FindTypes with CompilerContext to allow filtering by language.Adrian Prantl2019-08-2227-198/+219
| | | | | | | | | | | | | | | | | | | This patch is also motivated by the Swift branch and is effectively NFC for the single-TypeSystem llvm.org branch. In multi-language projects it is extremely common to have, e.g., a Clang type and a similarly-named rendition of that same type in another language. When searching for a type It is much cheaper to pass a set of supported languages to the SymbolFile than having it materialize every result and then rejecting the materialized types that have the wrong language. Differential Revision: https://reviews.llvm.org/D66546 <rdar://problem/54471165> This reapplies r369690 with a previously missing constructor for LanguageSet. llvm-svn: 369710
* TestAppleSimulatorOSType: Pass the --standalone argument to simctlFrederic Riss2019-08-221-1/+1
| | | | | | | | It looks like running without this argument was supported for legacy reasons, but a Xcode 11 beta made the argument mandatory for our usecase. llvm-svn: 369709
* Revert [heap.py] Add missing declaration for malloc_get_all_zonesVedant Kumar2019-08-221-1/+0
| | | | | | | | This reverts r369684 (git commit cc62e38d258f414c196b566374c606e83a85a034) Adding a declaration doesn't appear to be a sufficient fix. llvm-svn: 369706
OpenPOWER on IntegriCloud