[lldb] Remove reproducer logic from LocateSymbolFileMacOSX
[lldb] Add a SymbolFileProvider to record and replay calls to dsymForUUIDWhen replaying a reproducer captured from a core file, we always usedsymForUUID for the kernel binary. When enabled, we als
[lldb] Add a SymbolFileProvider to record and replay calls to dsymForUUIDWhen replaying a reproducer captured from a core file, we always usedsymForUUID for the kernel binary. When enabled, we also use it to findkexts. Since these files are already contained in the reproducer,there's no reason to call out to an external tool. If the tool returns adifferent result, e.g. because the dSYM got garbage collected, it willbreak reproducer replay. The SymbolFileProvider solves the issue bymapping UUIDs to module and symbol paths in the reproducer.Differential revision: https://reviews.llvm.org/D86389
show more ...
[lldb] Capture and load home directory from the reproducer.When replaying the reproducer, lldb should source the .lldbinit filethat was captured by the reproducer and not the one in the current ho
[lldb] Capture and load home directory from the reproducer.When replaying the reproducer, lldb should source the .lldbinit filethat was captured by the reproducer and not the one in the current homedirectory. This requires that we store the home directory as part of thereproducer. By returning the virtual home directory during replay, weensure the correct virtual path gets constructed which the VFS can thenfind and remap to the correct file in the reproducer root.This patch adds a new HomeDirectoryProvider, similar to the existingWorkingDirectoryProvider. As the home directory is not part of the VFS,it is stored in LLDB's FileSystem instance.
[lldb/Reproducers] Collect files imported by command script importFiles imported by the script interpreter aren't opened by LLDB so theydon't end up in the reproducer. The solution is to explicitl
[lldb/Reproducers] Collect files imported by command script importFiles imported by the script interpreter aren't opened by LLDB so theydon't end up in the reproducer. The solution is to explicitly add themto the FileCollector.Differential revision: https://reviews.llvm.org/D76626
[lldb] Remove license headers from all test source filesSummary:Around a third of our test sources have LLVM license headers. This patch removes those headers from all testsources and also fixes
[lldb] Remove license headers from all test source filesSummary:Around a third of our test sources have LLVM license headers. This patch removes those headers from all testsources and also fixes any tests that depended on the length of the license header.The reasons for this are:* A few tests verify line numbers and will start failing if the number of lines in the LLVM license header changes. Once I landed my patch for valid SourceLocations in debug info we will probably have even more tests that verify line numbers.* No other LLVM project is putting license headers in its test files to my knowledge.* They make the test sources much more verbose than they have to be. Several tests have longer license headers than the actual test source.For the record, the following tests had their line numbers changed to pass with the removal of the license header: lldb-api :: functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py lldb-shell :: Reproducer/TestGDBRemoteRepro.test lldb-shell :: Reproducer/TestMultipleTargets.test lldb-shell :: Reproducer/TestReuseDirectory.test lldb-shell :: ExecControl/StopHook/stop-hook-threads.test lldb-shell :: ExecControl/StopHook/stop-hook.test lldb-api :: lang/objc/exceptions/TestObjCExceptions.pyReviewers: #lldb, espindola, JDevlieghereReviewed By: #lldb, JDevlieghereSubscribers: emaste, aprantl, arphaman, JDevlieghere, lldb-commitsTags: #lldbDifferential Revision: https://reviews.llvm.org/D74839
Revert "Temporarily revert [lldb] e81268d - [lldb/Reproducers] Support multiple GDB remotes"On multiple retry this issue won't duplicate - will revisit with author ifduplication works again.This
Revert "Temporarily revert [lldb] e81268d - [lldb/Reproducers] Support multiple GDB remotes"On multiple retry this issue won't duplicate - will revisit with author ifduplication works again.This reverts commit c9e0b354e2749ce7ab553974692cb35c8651a869.
Temporarily revert [lldb] e81268d - [lldb/Reproducers] Support multiple GDB remotesThis was causing a crash in opt+assert builds on linux and a follow-upmessage was posted.This reverts commit e8
Temporarily revert [lldb] e81268d - [lldb/Reproducers] Support multiple GDB remotesThis was causing a crash in opt+assert builds on linux and a follow-upmessage was posted.This reverts commit e81268d03e73aef4f9c7bd8ece8ad02f5b017dcf
[lldb/Reproducers] Support multiple GDB remotesWhen running the test suite with always capture on, a handful of testsare failing because they have multiple targets and therefore multipleGDB remot
[lldb/Reproducers] Support multiple GDB remotesWhen running the test suite with always capture on, a handful of testsare failing because they have multiple targets and therefore multipleGDB remote connections. The current reproducer infrastructure is capableof dealing with that.This patch reworks the GDB remote provider to support multiple GDBremote connections, similar to how the reproducers support shadowingmultiple command interpreter inputs. The provider now keeps a list ofpacket recorders which deal with a single GDB remote connection. Duringreplay we rely on the order of creation to match the number of packetsto the GDB remote connection.Differential revision: https://reviews.llvm.org/D71105
[Reproducer] Generate LLDB reproducer on crashThis patch hooks the reproducer infrastructure with the signal handlers.When lldb crashes with reproducers capture enabled, it will now generatethe r
[Reproducer] Generate LLDB reproducer on crashThis patch hooks the reproducer infrastructure with the signal handlers.When lldb crashes with reproducers capture enabled, it will now generatethe reproducer and print a short message the standard out. This doesn'taffect the pretty stack traces, which are still printed before.This patch also introduces a new reproducer sub-command thatintentionally raises a given signal to test the reproducer signalhandling.Currently the signal handler is doing too much work. Instead of copyingover files into the reproducers in the signal handler, we shouldre-invoke ourselves with a special command line flag that looks at theVFS mapping and performs the copy.This is a NO-OP when reproducers are disabled.Differential revision: https://reviews.llvm.org/D70474
[Reproducer] Discard reproducer directory if not generated.If lldb was run in capture mode, but no reproducer was generated, makesure we clean up the reproducer directory.
[Reproducer] Support dumping the reproducer CWDAdd support for dumping the current working directory with`reproducer dump -p cwd`.llvm-svn: 375061
Re-land "[test] Split LLDB tests into API, Shell & Unit"The original patch got reverted because it broke `check-lldb` on a cleanbuild. This fixes that.llvm-svn: 374201
Revert [test] Split LLDB tests into API, Shell & Unitas it appears to have broken check-lldb.This reverts r374184 (git commit 22314179f0660c172514b397060fd8f34b586e82)llvm-svn: 374187
[test] Split LLDB tests into API, Shell & UnitLLDB has three major testing strategies: unit tests, tests that exercisethe SB API though dotest.py and what we currently call lit tests. Thelater is
[test] Split LLDB tests into API, Shell & UnitLLDB has three major testing strategies: unit tests, tests that exercisethe SB API though dotest.py and what we currently call lit tests. Thelater is rather confusing as we're now using lit as the driver for allthree types of tests. As most of this grew organically, the directorystructure in the LLDB repository doesn't really make this clear.The 'lit' tests are part of the root and among these tests there's aUnit and Suite folder for the unit and dotest-tests. This layout makesit impossible to run just the lit tests.This patch changes the directory layout to match the 3 testingstrategies, each with their own directory and their own configurationfile. This means there are now 3 directories under lit with 3corresponding targets: - API (check-lldb-api): Test exercising the SB API. - Shell (check-lldb-shell): Test exercising command line utilities. - Unit (check-lldb-unit): Unit tests.Finally, there's still the `check-lldb` target that runs all three testsuites.Finally, this also renames the lit folder to `test` to match the LLVMrepository layout.Differential revision: https://reviews.llvm.org/D68606llvm-svn: 374184