summaryrefslogtreecommitdiff
path: root/lldb/test/API/functionalities/postmortem/elf-core
AgeCommit message (Collapse)Author
2025-09-09NFC: SBThread should not be the one to compute StopReasonData. (#157577)jimingham
This is something the StopInfo class manages, so it should be allowed to compute this rather than having SBThread do so. This code just moves the computation to methods in StopInfo. It is mostly NFC. The one change that I actually had to adjust the tests for was a couple of tests that were asking for the UnixSignal stop info data by asking for the data at index 1. GetStopInfoDataCount returns 1 and we don't do 1 based indexing so the test code was clearly wrong. But I don't think it makes sense to perpetuate handing out the value regardless of what index you pass us.
2025-09-08[lldb][elf-core][ARM] Add support for VFP registers (#155956)Igor Kudrin
This patch loads values of the VFP registers from the NT_ARM_VFP note. Note that a CORE/NT_FPREGSET note is typically present in core dump files and is used to store the FPA registers. The FPA unit is rare and obsolete; however, Linux creates the note even if the unit is absent.
2025-07-30[lldb] Fix updating persistent variables without JIT (#149642)Igor Kudrin
This patch fixes updating persistent variables when memory cannot be allocated in an inferior process: ``` > lldb -c test.core (lldb) expr int $i = 5 (lldb) expr $i = 55 (int) $0 = 55 (lldb) expr $i (int) $i = 5 ``` With this patch, the last command prints: ``` (int) $i = 55 ``` The issue was introduced in #145599.
2025-06-27[lldb] Fix evaluating expressions without JIT in an object context (#145599)Igor Kudrin
If a server does not support allocating memory in an inferior process or when debugging a core file, evaluating an expression in the context of a value object results in an error: ``` error: <lldb wrapper prefix>:43:1: use of undeclared identifier '$__lldb_class' 43 | $__lldb_class::$__lldb_expr(void *$__lldb_arg) | ^ ``` Such expressions require a live address to be stored in the value object. However, `EntityResultVariable::Dematerialize()` only sets `ret->m_live_sp` if JIT is available, even if the address points to the process memory and no custom allocations were made. Similarly, `EntityPersistentVariable::Dematerialize()` tries to deallocate memory based on the same check, resulting in an error if the memory was not previously allocated in `EntityPersistentVariable::Materialize()`. As an unintended bonus, the patch also fixes a FIXME case in `TestCxxChar8_t.py`.
2025-05-20[lldb][core] Fix getting summary of a variable pointing to r/o memory (#139196)Igor Kudrin
Motivation example: ``` > lldb -c altmain2.core ... (lldb) var F (const char *) F = 0x0804a000 "" ``` The variable `F` points to a read-only memory page not dumped to the core file, so `Process::ReadMemory()` cannot read the data. The patch switches to `Target::ReadMemory()`, which can read data both from the process memory and the application binary.
2025-02-21[lldb][LoongArch] Complete register alias name in `AugmentRegisterInfo`wanglei
Fixes: https://github.com/llvm/llvm-project/issues/123903 Reviewed By: DavidSpickett, SixWeining Pull Request: https://github.com/llvm/llvm-project/pull/124059
2025-02-20[lldb][RISC-V] Extended if conditions to support alias names for registers ↵kper
(#124475) Extending the conditionals in `AugmentRegisterInfo` to support alternative names for lldb. Fixes #124023 There is an exception with register `X8` which is not covered here but more details can be found in the issue https://github.com/llvm/llvm-project/issues/127900.
2024-10-21[lldb][LoongArch64] Add support for LoongArch64 in elf-core for lldb (#112296)Liu An
When using the lldb command 'target create --core' on the LoongArch64 architecture, this part of the code is required.
2024-09-04[lldb][RISCV] Support optionally disabled FPR for riscv64 (#104547)Alexey Merzlyakov
The PR adds the support optionally enabled/disabled FP-registers to LLDB `RegisterInfoPOSIX_riscv64`. This situation might take place for RISC-V builds having no FP-registers, like RV64IMAC or RV64IMACV. To aim this, patch adds `opt_regsets` flags mechanism. It re-works RegisterInfo class to work with flexibly allocated (depending on `opt_regsets` flag) `m_register_sets` and `m_register_infos` vectors instead of statically defined structures. The registration of regsets is being arranged by `m_per_regset_regnum_range` map. The patch flows are spread to `NativeRegisterContextLinux_riscv64` and `RegisterContextCorePOSIX_riscv64` classes, that were tested on: - x86_64 host working with coredumps - RV64GC and RV64IMAC targets working with coredumps and natively in run-time with binaries `EmulateInstructionRISCV` is out of scope of this patch, and its behavior did not change, using maximum set of registers. According testcase built for RV64IMAC (no-FPR) was added to `TestLinuxCore.py`.
2024-07-31[lldb] Allow mapping object file paths (#101361)Alexandre Perez
This introduces a `target.object-map` which allows us to remap module locations, much in the same way as source mapping works today. This is useful, for instance, when debugging coredumps, so we can replace some of the locations where LLDB attempts to load shared libraries and executables from, without having to setup an entire sysroot.
2024-07-03[lldb][AArch64] Add register field enum information (#96887)David Spickett
This enables XML output for enums and adds enums for 2 fields on AArch64 Linux: * mte_ctrl.tcf, which controls how tag faults are delivered. * fpcr.rmode, which sets the rounding mode for floating point operations. The other one we could do is cpsr.btype, but it is not clear what would be useful here so I'm not including it in this change.
2024-06-05[lldb][RISCV] Add RegisterContextPOSIXCore for RISC-V 64 (#93297)Alexey Merzlyakov
The PR adds the support of CoreDump debugging for RISC-V 64. It implements new `RegisterContextCorePOSIX_riscv64` class. Also, the contribution fixes `GetRegisterCount()` -> `GetRegisterSetCount()` misprint in `RegisterContextPOSIX_riscv64::GetRegisterSetCount()` method, which leaded to `set && "Register set should be valid."` assertion during `register info aX` command call. The patch was tested (on coredumps generated for simple Integer/FP calculation code) for _cross x86_64 -> RISCV_ and _native RISCV_ LLDB builds. There were performed basic LLDB functionality tests, such as: - CoreDump file load - Backtrace / frames - GP/FP registers read/info/list - Basic switch between threads - Disassembler code - Memory regions read / display
2024-05-02[lldb][test][FreeBSD] Remove corefile test xfails (#84022)David Spickett
Fixes #48759 As stated on the issue this was fixed by a change in FreeBSD 13, and I've confirmed that it passes on 14 as well.
2024-02-05Add a new SBProcess:: GetCoreFile() API (#80767)jeffreytan81
We have a Python script that needs to locate coredump path during debugging so that we can retrieve certain metadata files associated with it. Currently, there is no API for this. This patch adds a new `SBProcess::GetCoreFile()` to retrieve target dump file spec used for dump debugging. Note: this is different from the main executable module spec. To achieve this, the patch hoists m_core_file into PostMortemProcess for sharing. --------- Co-authored-by: jeffreytan81 <jeffreytan@fb.com>
2023-11-27[lldb][AArch64][Linux] Correct name of FPCR fieldDavid Spickett
It should be "RMode" as in "rounding mode" not "RMMode".
2023-11-20Revert "Add new API in SBTarget for loading core from SBFile (#71769)"Muhammad Omair Javaid
This reverts commit e2fb816c4f0286ddf8b1030148a343d5efc14e01. It breaks TestLinuxCore.py on lldb-*-windows. See buildbot below: https://lab.llvm.org/buildbot/#/builders/219/builds/7014
2023-11-17Add new API in SBTarget for loading core from SBFile (#71769)GeorgeHuyubo
Add a new API in SBTarget to Load Core from a SBFile. This will enable a target to load core from a file descriptor. So that in coredumper, we don't need to write core file to disk, instead we can pass the input file descriptor to lldb directly. Test: ``` (lldb) script Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D. >>> file_object = open("/home/hyubo/210hda79ms32sr0h", "r") >>> fd=file_object.fileno() >>> file = lldb.SBFile(fd,'r', True) >>> error = lldb.SBError() >>> target = lldb.debugger.CreateTarget(None) >>> target.LoadCore(file,error) SBProcess: pid = 56415, state = stopped, threads = 1 ```
2023-11-09[lldb][AArch64][Linux] Add fields for FPCR register (#71694)David Spickett
Follows the format laid out in the Arm manual, AArch32 only fields are ignored. ``` (lldb) register read fpcr fpcr = 0x00000000 = (AHP = 0, DN = 0, FZ = 0, RMMode = 0, FZ16 = 0, IDE = 0, IXE = 0, UFE = 0, OFE = 0, DZE = 0, IOE = 0) ``` Tests use the first 4 fields that we know are always present. Converted all the HCWAP defines to `UL` because I'm bound to forget one if I don't do it now.
2023-11-09[lldb][AArch64][Linux] Add field information for the fpsr register (#71651)David Spickett
This one is easy because none of the fields depend on extensions. Only thing to note is that I've ignored some AArch32 only fields. ``` (lldb) register read fpsr fpsr = 0x00000000 = (QC = 0, IDC = 0, IXC = 0, UFC = 0, OFC = 0, DZC = 0, IOC = 0) ```
2023-11-08[lldb][AArch64][Linux] Add field information for the CPSR register (#70300)David Spickett
The contents of which are mostly SPSR_EL1 as shown in the Arm manual, with a few adjustments for things Linux says userspace shouldn't concern itself with. ``` (lldb) register read cpsr cpsr = 0x80001000 = (N = 1, Z = 0, C = 0, V = 0, SS = 0, IL = 0, ... ``` Some fields are always present, some depend on extensions. I've checked for those extensions using HWCAP and HWCAP2. To provide this for core files and live processes I've added a new class LinuxArm64RegisterFlags. This is a container for all the registers we'll want to have fields and handles detecting fields and updating register info. This is used by the native process as follows: * There is a global LinuxArm64RegisterFlags object. * The first thread takes a mutex on it, and updates the fields. * Subsequent threads see that detection is already done, and skip it. * All threads then update their own copy of the register information with pointers to the field information contained in the global object. This means that even though every thread will have the same fields, we only detect them once and have one copy of the information. Core files instead have a LinuxArm64RegisterFlags as a member, because each core file could have different saved capabilities. The logic from there is the same but we get HWACP values from the corefile note. This handler class is Linux specific right now, but it can easily be made more generic if needed. For example by using LLVM's FeatureBitset instead of HWCAPs. Updating register info is done with string comparison, which isn't ideal. For CPSR, we do know the register number ahead of time but we do not for other registers in dynamic register sets. So in the interest of consistency, I'm going to use string comparison for all registers including cpsr. I've added tests with a core file and live process. Only checking for fields that are always present to account for CPU variance.
2023-08-04[lldb] Fix Python test formatting (NFC)Jonas Devlieghere
All Python files in the LLVM repository were reformatted with Black [1]. Files inside the LLDB subproject were reformatted in 2238dcc39358. This patch updates a handful of tests that were added or modified since then and weren't formatted with Black. [1] https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style/68257
2023-08-03[lldb][AArch64] Add reading of TLS tpidr register from core filesDavid Spickett
7e229217f4215b519b886e7881bae4da3742a7d2 did live processes, this does core files. Pretty simple, there is an NT_ARM_TLS note that contains at least tpidr, and on systems with the Scalable Matrix Extension (SME), tpidr2 as well. tpidr2 will be handled in future patches for SME support. This NT_ARM_TLS note has always been present but it seems convenient to handle it as "optional" inside of LLDB. We'll probably want the flexibility when supporting tpidr2. Normally the C library would set tpidr but all our test sources build without it. So I've updated the neon test program to write to tpidr and regenerated the corefile. I've removed the LLDB_PTRACE_NT_ARM_TLS that was unused, we get what we need from llvm's defs instead. Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D156118
2023-07-20[lldb][x86_64] Support fs_base/gs_base register in LinuxJeffrey Tan
Summary: [lldb][x86_64] This patch adds fs_base/gs_base support for Linux x86_64. Originally, I plan to split the diff into two parts, one to refactoring lldb_xxx_x86_64 => x86_64::lldb_xxx across code base and the other one for adding fs_base/gs_base, but it turns out to be a non-trivial effort to split and very error prone so I decided to keep a single diff to get feedback. GDB supports fs_base/gs_base registers while LLDB does not. Since both linux coredump note section and ptrace supports them it is a missing feature. For context, this is a required feature to support getting pthread pointer on linux from both live and dump debugging. See thread below for details: https://discourse.llvm.org/t/how-to-get-pthread-pointer-from-lldb/70542/2?u=jeffreytan81 Implementation wise, we have initially tried `#ifdef` approach to reuse the code but it is introducing very tricky bugs and proves hard to maintain. Instead the diff completely separates the registers between x86_64 and x86_64_with_base so that non-linux related implementations can use x86_64 registers while linux uses x86_64_with_base. Here are the list of changes done in the patch: * Registers in lldb-x86-register-enums.h are separated into two: x86_64 and x86_64_with_base * fs_base/gs_base are added into x86_64_with_base * All linux files are change to use x86_64::lldb_xxx => x86_64_with_base::lldb_xxx * Support linux elf-core: * A new RegisterContextLinuxCore_x86_64 class is added for ThreadElfCore * RegisterContextLinuxCore_x86_64 overrides and uses its own register set supports fs_base/gs_base * RegisterInfos_x86_64_with_base/RegisterInfos_x86_64_with_base_shared ared added to provide g_contained_XXX/g_invalidate_XXX and RegInfo related code sharing. * `RegisterContextPOSIX_x86 ::m_gpr_x86_64` seems to be unused so I removed it. * `NativeRegisterContextDBReg_x86::GetDR()` is overridden in `NativeRegisterContextLinux_x86_64` to make watchpoint work. Reviewers:clayborg,labath,jingham,jdoerfert,JDevlieghere,kusmour,GeorgeHuyubo Subscribers: Tasks: Tags: Differential Revision: https://reviews.llvm.org/D155256
2023-05-25[NFC][Py Reformat] Reformat python files in lldbJonas Devlieghere
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black` (23.1.0). If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run `git checkout --ours <yourfile>` and then reformat it with black. RFC: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Differential revision: https://reviews.llvm.org/D151460
2022-09-13[lldb] Fixed a number of typosGabriel Ravier
I went over the output of the following mess of a command: (ulimit -m 2000000; ulimit -v 2000000; git ls-files -z | parallel --xargs -0 cat | aspell list --mode=none --ignore-case | grep -E '^[A-Za-z][a-z]*$' | sort | uniq -c | sort -n | grep -vE '.{25}' | aspell pipe -W3 | grep : | cut -d' ' -f2 | less) and proceeded to spend a few days looking at it to find probable typos and fixed a few hundred of them in all of the llvm project (note, the ones I found are not anywhere near all of them, but it seems like a good start). Differential revision: https://reviews.llvm.org/D131122
2022-08-15[LLDB] Remove __future__ imports from testsDavid Spickett
Not needed now that we require python 3. Reviewed By: kastiglione, JDevlieghere Differential Revision: https://reviews.llvm.org/D131761
2022-08-03[lldb] Add assertStopReason helper functionJonas Devlieghere
Add a function to make it easier to debug a test failure caused by an unexpected stop reason. This is similar to the assertState helper that was added in ce825e46743b. Before: self.assertEqual(stop_reason, lldb.eStopReasonInstrumentation) AssertionError: 5 != 10 After: self.assertStopReason(stop_reason, lldb.eStopReasonInstrumentation) AssertionError: signal (5) != instrumentation (10) Differential revision: https://reviews.llvm.org/D131083
2022-07-27[lldb] Always use APFloat for FP dumpingPavel Labath
The DumpDataExtractor function had two branches for printing floating point values. One branch (APFloat) was used if we had a Target object around and could query it for the appropriate semantics. If we didn't have a Target, we used host operations to read and format the value. This patch changes second path to use APFloat as well. To make it work, I pick reasonable defaults for different byte size. Notably, I did not include x87 long double in that list (as it is ambibuous and architecture-specific). This exposed a bug where we were printing register values using the target-less branch, even though the registers definitely belong to a target, and we had it available. Fixing this prompted the update of several tests for register values due to slightly different floating point outputs. The most dubious aspect of this patch is the change in TypeSystemClang::GetFloatTypeSemantics to recognize `10` as a valid size for x87 long double. This was necessary because because sizeof(long double) on x86_64 is 16 even though it only holds 10 bytes of useful data. This generalizes the hackaround present in the target-free branch of the dumping function. Differential Revision: https://reviews.llvm.org/D129750
2022-06-17[lldb][tests] Automatically call compute_mydir (NFC)Dave Lee
Eliminate boilerplate of having each test manually assign to `mydir` by calling `compute_mydir` in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077
2022-05-03Revert "[lldb] Fix ppc64 detection in lldb"David Spickett
This reverts commit f114f009486816ed4b3bf984f0fbbb8fc80914f6. Due to hitting an assert on our lldb bots: https://lab.llvm.org/buildbot/#/builders/96/builds/22715 ../llvm-project/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp:170: virtual lldb::RegisterContextSP ThreadElfCore::CreateRegisterContextForFrame( lldb_private::StackFrame *): Assertion `false && "Architecture or OS not supported"' failed.
2022-05-03[lldb] Fix ppc64 detection in lldbserge-sans-paille
Currently, ppc64le and ppc64 (defaulting to big endian) have the same descriptor, thus the linear scan always return ppc64le. Handle that through subtype. Differential Revision: https://reviews.llvm.org/D124760
2022-02-28Set error message if ValueObjectRegister fails to write back to registerIlya Nozhkin
SetValueFromCString and SetData methods return false if register can't be written but they don't set a error message. It sometimes confuses callers of these methods because they try to get the error message in case of failure but Status::AsCString returns nullptr. For example, lldb-vscode crashes due to this bug if some register can't be written. It invokes SBError::GetCString in case of error and doesn't check whether the result is nullptr (see request_setVariable implementation in lldb-vscode.cpp for more info). Reviewed By: labath, clayborg Differential Revision: https://reviews.llvm.org/D120319
2022-02-14[lldb] Replace asserts on .Success() with assertSuccess()Dave Lee
Replace forms of `assertTrue(err.Success())` with `assertSuccess(err)` (added in D82759). * `assertSuccess` prints out the error's message * `assertSuccess` expresses explicit higher level semantics, both to the reader and for test failure output * `assertSuccess` seems not to be well known, using it where possible will help spread knowledge * `assertSuccess` statements are more succinct Differential Revision: https://reviews.llvm.org/D119616
2021-09-30[lldb] Remove support for replaying the test suite from a reproducerJonas Devlieghere
This patch removes the infrastructure to replay the test suite from a reproducer, as well as the modifications made to the individual tests.
2021-06-16AArch64 Linux and elf-core PAC stack unwinder supportMuhammad Omair Javaid
This patch builds on D100521 and other related patches to add support for unwinding stack on AArch64 systems with pointer authentication feature enabled. We override FixCodeAddress and FixDataAddress function in ABISysV_arm64 class. We now try to calculate and set code and data masks after reading data_mask and code_mask registers exposed by AArch64 targets running Linux. This patch utilizes core file linux-aarch64-pac.core for testing that LLDB can successfully unwind stack frames in the presence of signed return address after masking off ignored bits. This patch also includes a AArch64 Linux native test case to demonstrate successful back trace calculation in presence of pointer authentication feature. Differential Revision: https://reviews.llvm.org/D99944
2021-05-03Support AArch64 PAC elf-core register readMuhammad Omair Javaid
This adds support for reading AArch64 Pointer Authentication regset from elf-core file. Also includes a test-case for the same. Furthermore there is also a slight refactoring of RegisterContextPOSIXCore_arm64 members and constructor. linux-aarch64-pac.core file is generated using lldb/test/API/functionalities/postmortem/elf-core/main.c with following clang arguments: -march=armv8.5-a -mbranch-protection=pac-ret+leaf -nostdlib -static -g Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D99941
2021-03-30[lldb] Remove linux/mips debugging supportPavel Labath
As discussed on lldb-dev <https://lists.llvm.org/pipermail/lldb-dev/2021-March/016777.html> the mips code is unmaintained and untested. It also carries a lot of technical debt which is not limited to mips-specific code. Generic mips support remains (and is going to be used by the upcoming freebsd code). Resurrecting mips support should be a matter of re-adding the relevant register context files (while avoiding reintroducing the debt).
2021-03-10[lldb] [test] Update XFAILs for FreeBSD/aarch64Michał Górny
2021-02-08[elf-core] Improve reading memory from core fileDjordje Todorovic
This patch tries to improve memory-read from core files (in order to improve disassembly functionality). I am using RHEL 7.7 (linux kernel 3.10) and for a lot of cases, I was not able to disassemble some functions from backtrace when debugging crashes from core files. It outputs some dummy code. The cause of the problem was the fact we are returning all the zeros from ProcessElfCore::ReadMemory() that is being called within Disassembler::ParseInstructions() and it disassembles some dummy opcodes from the buffer returned. Therefore, we are removing zero bytes filling (padding) completely. Differential Revision: https://reviews.llvm.org/D93939
2020-08-06[lldb][AArch64] Correct compile options for Neon corefileDavid Spickett
SVE is not required, it has its own test. Note that there is no "+neon" so "+simd" is used instead. Also rename the file to match the name of the corefile it produces. Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D85134
2020-07-21Revert "Revert "AArch64 SVE register infos and core file support""Muhammad Omair Javaid
This reverts commit d9920e0199b48734ef305e69ecd5235fff72be25.
2020-07-20Revert "AArch64 SVE register infos and core file support"Muhammad Omair Javaid
This reverts commit 7e017de0ad62dfd3f373354fc47b0e39c0fef657.
2020-07-20AArch64 SVE register infos and core file supportMuhammad Omair Javaid
Summary: This patch adds support for AArch64 SVE register infos description and core file register access. AArch64 SVE is a an optional extension of Arm v8.3-a architecture. It has introduced 32 new vector registers Z, 16 predicate P registers and FFR predicate register. These registers have fixed names but can dynamically be configured to different size based on underlying OS configuration. This patch adds register info struct that describes SVE register infos and also provides RegisterContextPOSIXCore_arm64 routines to access SVE registers. This patch also introduces a mechanism to configure SVE register sizes and offsets at startup before exchanging register information across gdb-remote. TestLinuxCore.py has been updated to include testing of SVE core files. Reviewers: labath, clayborg, jankratochvil, jasonmolenda, rengolin Reviewed By: labath Subscribers: tschuett, kristof.beyls, danielkiss, lldb-commits Differential Revision: https://reviews.llvm.org/D77047
2020-05-18[lldb/Reproducers] Add skipIfReproducer to more testsJonas Devlieghere
Mark more tests as unsupported with reproducers.
2020-04-29Fix LLDB elf core dump register access for ARM/AArch64Muhammad Omair Javaid
Summary: This patch adds support to access AArch64 FP SIMD core dump registers and adds a test case to verify registers. This patches fixes a bug where doing "register read --all" causes lldb to crash. Reviewers: labath Reviewed By: labath Subscribers: kristof.beyls, danielkiss, lldb-commits Differential Revision: https://reviews.llvm.org/D77793
2020-04-20[lldb] Prefer executable files from sysroot over files from local filesystemYuri Per
Summary: In D49685 sysroot behaviour was partially fixed. But files from local filesystem with same path still has priority over files from sysroot. This patch fixes it by removing fallback to local filesystem from RemoteAwarePlatform::GetModuleSpec(). It is not actually required because higher level code do such fallback itself. See, for example, resolver in Platform::GetSharedModule(). Reviewers: labath, clayborg, EugeneBi Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77529
2020-03-05[lldb][testsuite] Create a SBDebugger instance for each testTatyana Krasnukha
Some tests set settings and don't clean them up, this leads to side effects in other tests. The patch removes a global debugger instance with a per-test debugger to avoid such effects. From what I see, lldb.DBG was needed to determine the platform before a test is run, lldb.selected_platform is used for this purpose now. Though, this required adding a new function to the SBPlatform interface. Differential Revision: https://reviews.llvm.org/D74903
2020-02-20[lldb] Remove license headers from all test source filesRaphael Isemann
Summary: Around a third of our test sources have LLVM license headers. This patch removes those headers from all test sources 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.py Reviewers: #lldb, espindola, JDevlieghere Reviewed By: #lldb, JDevlieghere Subscribers: emaste, aprantl, arphaman, JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74839
2020-02-11[lldb][test] Remove symlink for API tests.Jordan Rupprecht
Summary: Moves lldbsuite tests to lldb/test/API. This is a largely mechanical change, moved with the following steps: ``` rm lldb/test/API/testcases mkdir -p lldb/test/API/{test_runner/test,tools/lldb-{server,vscode}} mv lldb/packages/Python/lldbsuite/test/test_runner/test lldb/test/API/test_runner for d in $(find lldb/packages/Python/lldbsuite/test/* -maxdepth 0 -type d | egrep -v "make|plugins|test_runner|tools"); do mv $d lldb/test/API; done for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-vscode -maxdepth 1 -mindepth 1 | grep -v ".py"); do mv $d lldb/test/API/tools/lldb-vscode; done for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-server -maxdepth 1 -mindepth 1 | egrep -v "gdbremote_testcase.py|lldbgdbserverutils.py|socket_packet_pump.py"); do mv $d lldb/test/API/tools/lldb-server; done ``` lldb/packages/Python/lldbsuite/__init__.py and lldb/test/API/lit.cfg.py were also updated with the new directory structure. Reviewers: labath, JDevlieghere Tags: #lldb Differential Revision: https://reviews.llvm.org/D71151