| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[lldb] Fix cross-platform kills This patch fixes an amusing bug where a Platform::Kill operation would happily terminate a proces on a completely different platform, as long as they have the same process ID. This was due to the fact that the implementation was iterating through all known (debugged) processes in order terminate them directly. This patch just deletes that logic, and makes everything go through the OS process termination APIs. While it would be possible to fix the logic to check for a platform match, it seemed to me that the implementation was being too smart for its own good -- accessing random Process objects without knowing anything about their state is risky at best. Going through the os ensures we avoid any races. I also "upgrade" the termination signal to a SIGKILL to ensure the process really dies after this operation. Differential Revision: https://reviews.llvm.org/D113184 | 4 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb] [gdb-remote] Fix process ID after following forked child Update the process ID after handling fork/vfork to ensure that the process plugin reports the correct PID immediately. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D130037 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb] Use assertState in even more tests (NFC) Followup to D127355 and D127378, converting more instances of assertEqual to assertState. | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb][tests] Automatically call compute_mydir (NFC) Eliminate boilerplate of having each test manually assign to mydir by calling compute_mydir in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077 | 3 年前 | |
[lldb] [test] Rewrite g/p/G/P tests not to rely on hardcoded ARM regs Rewrite the register reading/writing tests to use explicit qRegisterInfo packets rather than relying on ARM registers being hardcoded in LLDB. While at it, use x86_64 for tests -- since it was easier for me to get the register lists from that architecture. Differential Revision: https://reviews.llvm.org/D111496 | 4 年前 | |
[lldb] [ABI/X86] Add pseudo-registers if missing Differential Revision: https://reviews.llvm.org/D108831 | 4 年前 | |
[lldb] Improve qemu interop for aarch64 qemu calls the "fp" and "lr" registers via their generic names (x29/x30). This mismatch manifested itself as not being able to unwind or display values of some local variables. | 5 年前 | |
[lldb] [gdb-remote] Try using <architecture/> for remote arch unconditionally Try determining the process architecture from <architecture/> tag unconditionally, rather than for very specific cases. Generic gdbserver implementations do not support LLDB-specific packets used to determine the process architecture, therefore this fallback is necessary to support architecture-specific behavior on these targets. Rather than maintaining a mapping of all known architectures, just try mapping the GDB values into triplets, as that is going to work most of the time. This change is confirmed to fix LLDB against gdbserver when debugging i386 and aarch64 executables. Differential Revision: https://reviews.llvm.org/D109272 | 4 年前 | |
[lldb][test] Remove symlink for API tests. 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 | 6 年前 | |
[lldb] Avoid duplicate vdso modules when opening core files When opening core files (and also in some other situations) we could end up with two vdso modules. This could happen because the vdso module is very special, and over the years, we have accumulated various ways to load it. In D10800, we added one mechanism for loading it, which took the form of a generic load-from-memory capability. Unfortunately loading an elf file from memory is not possible (because the loader never loads the entire file), and our attempts to do so were causing crashes. So, in D34352, we partially reverted D10800 and implemented a custom mechanism specific to the vdso. Unfortunately, enough of D10800 remained such that, under the right circumstances, it could end up loading a second (non-functional) copy of the vdso module. This happened when the process plugin did not support the extended MemoryRegionInfo query (added in D22219, to workaround a different bug), which meant that the loader plugin was not able to recognise that the linux-vdso.so.1 module (this is how the loader calls it) is in fact the same as the [vdso] module (the name used in /proc/$PID/maps) we loaded before. This typically happened in a core file, as they don't store this kind of information. This patch fixes the issue by completing the revert of D10800 -- the memory loading code is removed completely. It also reduces the scope of the hackaround introduced in D22219 -- it isn't completely sound and is only relevant for fairly old (but still supported) versions of android. I added the memory loading logic to the wasm dynamic loader, which has since appeared and is relying on this feature (it even has a test). As far as I can tell loading wasm modules from memory is possible and reliable. MachO memory loading is not affected by this patch, as it uses a completely different code path. Since the scenarios/patches I described came without test cases, I have created two new gdb-client tests cases for them. They're not particularly readable, but right now, this is the best way we can simulate the behavior (bugs) of a particular dynamic linker. Differential Revision: https://reviews.llvm.org/D122660 | 4 年前 | |
[lldb][test] Remove symlink for API tests. 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 | 6 年前 | |
[lldb][test] Remove symlink for API tests. 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 | 6 年前 | |
[lldb/gdb-remote] Add support for the qOffsets packet Summary: This packet is necessary to make lldb work with the remote-gdb stub in user mode qemu when running position-independent binaries. It reports the relative position (load bias) of the loaded executable wrt. the addresses in the file itself. Lldb needs to know this information in order to correctly set the load address of the executable. Normally, lldb would be able to find this out on its own by following the breadcrumbs in the process auxiliary vector, but we can't do this here because qemu does not support the qXfer:auxv:read packet. This patch does not implement full scope of the qOffsets packet (it only supports packets with identical code, data and bss offsets), because it is not fully clear how should the different offsets be handled and I am not aware of a producer which would make use of this feature (qemu will always <https://github.com/qemu/qemu/blob/master/linux-user/elfload.c#L2436> return the same value for code and data offsets). In fact, even gdb ignores the offset for the bss sections, and uses the "data" offset instead. So, until the we need more of this packet, I think it's best to stick to the simplest solution possible. This patch simply rejects replies with non-uniform offsets. Reviewers: clayborg, jasonmolenda Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74598 | 6 年前 | |
[lldb] Fix cross-platform kills This patch fixes an amusing bug where a Platform::Kill operation would happily terminate a proces on a completely different platform, as long as they have the same process ID. This was due to the fact that the implementation was iterating through all known (debugged) processes in order terminate them directly. This patch just deletes that logic, and makes everything go through the OS process termination APIs. While it would be possible to fix the logic to check for a platform match, it seemed to me that the implementation was being too smart for its own good -- accessing random Process objects without knowing anything about their state is risky at best. Going through the os ensures we avoid any races. I also "upgrade" the termination signal to a SIGKILL to ensure the process really dies after this operation. Differential Revision: https://reviews.llvm.org/D113184 | 4 年前 | |
[LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging Add a dynamic loader plug-in class for WebAssembly modules. Differential Revision: https://reviews.llvm.org/D72751 | 6 年前 | |
[LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging Add a dynamic loader plug-in class for WebAssembly modules. Differential Revision: https://reviews.llvm.org/D72751 | 6 年前 | |
[LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging Add a dynamic loader plug-in class for WebAssembly modules. Differential Revision: https://reviews.llvm.org/D72751 | 6 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 6 年前 | ||
| 6 年前 | ||
| 6 年前 |