summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp
AgeCommit message (Collapse)Author
2025-01-31[lldb][Windows] WoA HW Watchpoint support in LLDB (#108072)Omair Javaid
This PR adds support for hardware watchpoints in LLDB for AArch64 Windows targets. Windows does not provide an API to query the number of available hardware watchpoints supported by underlying hardware platform. Therefore, current implementation supports only a single hardware watchpoint, which has been verified on Windows 11 using Microsoft SQ2 and Snapdragon Elite X hardware. LLDB test suite ninja check-lldb still fails watchpoint-related tests. However, tests that do not require more than a single watchpoint pass successfully when run individually.
2024-08-27[lldb] Adapt Plugins/Process/Windows to new Status APIAdrian Prantl
2024-08-27[lldb] Turn lldb_private::Status into a value type. (#106163)Adrian Prantl
This patch removes all of the Set.* methods from Status. This cleanup is part of a series of patches that make it harder use the anti-pattern of keeping a long-lives Status object around and updating it while dropping any errors it contains on the floor. This patch is largely NFC, the more interesting next steps this enables is to: 1. remove Status.Clear() 2. assert that Status::operator=() never overwrites an error 3. remove Status::operator=() Note that step (2) will bring 90% of the benefits for users, and step (3) will dramatically clean up the error handling code in various places. In the end my goal is to convert all APIs that are of the form ` ResultTy DoFoo(Status& error) ` to ` llvm::Expected<ResultTy> DoFoo() ` How to read this patch? The interesting changes are in Status.h and Status.cpp, all other changes are mostly ` perl -pi -e 's/\.SetErrorString/ = Status::FromErrorString/g' $(git grep -l SetErrorString lldb/source) ` plus the occasional manual cleanup.
2022-09-08[lldb] Use std::size instead of llvm::array_lengthofJoe Loser
LLVM contains a helpful function for getting the size of a C-style array: `llvm::array_lengthof`. This is useful prior to C++17, but not as helpful for C++17 or later: `std::size` already has support for C-style arrays. Change call sites to use `std::size` instead. Differential Revision: https://reviews.llvm.org/D133501
2022-04-05[lldb] Update the NativeRegisterContext to take a WritableMemoryBufferJonas Devlieghere
2022-01-27[lldb] Convert ProcessWindowsLog to the new APIPavel Labath
2022-01-26Revert "Rename llvm::array_lengthof into llvm::size to match std::size from ↵Benjamin Kramer
C++17" This reverts commit ef8206320769ad31422a803a0d6de6077fd231d2. - It conflicts with the existing llvm::size in STLExtras, which will now never be called. - Calling it without llvm:: breaks C++17 compat
2022-01-26Rename llvm::array_lengthof into llvm::size to match std::size from C++17serge-sans-paille
As a conquence move llvm::array_lengthof from STLExtras.h to STLForwardCompat.h (which is included by STLExtras.h so no build breakage expected).
2021-11-04[LLDB] Fix Cpsr size for WoA64 targetMuhammad Omair Javaid
CPSR on Arm64 is 4 bytes in size but windows on Arm implementation is trying to read/write 8 bytes against a byte register causing LLDB unit tests failures. Ref: https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-arm64_nt_context Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D112471
2021-04-06[LLDB] Fix building for aarch64 windows after ↵Martin Storsjö
d6d3d21cd1cb1567eaf7ff8c0867b07227a19d99 Differential Revision: https://reviews.llvm.org/D99847
2020-01-24[lldb][NFC] Fix all formatting errors in .cpp file headersRaphael Isemann
Summary: A *.cpp file header in LLDB (and in LLDB) should like this: ``` //===-- TestUtilities.cpp -------------------------------------------------===// ``` However in LLDB most of our source files have arbitrary changes to this format and these changes are spreading through LLDB as folks usually just use the existing source files as templates for their new files (most notably the unnecessary editor language indicator `-*- C++ -*-` is spreading and in every review someone is pointing out that this is wrong, resulting in people pointing out that this is done in the same way in other files). This patch removes most of these inconsistencies including the editor language indicators, all the different missing/additional '-' characters, files that center the file name, missing trailing `===//` (mostly caused by clang-format breaking the line). Reviewers: aprantl, espindola, jfb, shafik, JDevlieghere Reviewed By: JDevlieghere Subscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D73258
2019-10-31[LLDB] [Windows] Remove a TODO which probably won't be implementedMartin Storsjö
Contrary to WoW64 on x86_64, there's no struct similar to WOW64_CONTEXT defined, for storing and handling the CPU state of an ARM32 process from an ARM64 process. Thus, making an ARM64 lldb-server able to control ARM32 processes seems infeasible at the moment. (The normal CONTEXT struct has a different layout on each architecture. In addition to this, a WOW64_CONTEXT struct always is defined, that can store the CPU state of an x86_32 process, to allow handling it from an x86_64 process. But there's no similar universally available struct for ARM32.)
2019-10-15[LLDB] [Windows] Initial support for ARM64 register contextsMartin Storsjo
Differential Revision: https://reviews.llvm.org/D67954 llvm-svn: 374866