[Lldb-commits] [PATCH] D95601: [lldb][AArch64] Add MTE memory tag reading to lldb-server
Muhammad Omair Javaid via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Sun Feb 14 11:11:26 PST 2021
omjavaid added a comment.
This patch looks quite neat overall I have a few minor questions, comments and suggestions.
1. To get the review going consider further splitting up these patches into separate chunks containing, for example MemoryTagHandler API and related unit tests, GDB remote addons, ptrace work etc. Also add reference to GDB mailing list discussion where design of qMemTag packet has been discussed.
2. Soft suggestion to rename MemoryTagHandler, IMO it sounds more like a routine rather than a set of helpers used for manipulating memory tags. Also lldb/include/lldb/Target doesnt seem like a good place for helper functions as MemoryTagHandler is not used as Memory Tag container class. May be consider putting it under source/Plugins/Process/Utility
3. Changes to lldb/packages/Python/lldbsuite/test/decorators.py look reasonable and can be committed right away with a small caveat.
Some other minor comments inline as well.
================
Comment at: lldb/packages/Python/lldbsuite/test/decorators.py:825
+def skipUnlessAArch64MTELinuxToolchain(func):
+ """Decorate the item to skip test unless MTE is supported by the test compiler/toolchain."""
----------------
Consider using Compiler instead of Toolchain to keep terminology consistent with rest of the code in this file.
================
Comment at: lldb/packages/Python/lldbsuite/test/decorators.py:858
+
+
def _get_bool_config(key, fail_value = True):
----------------
Omit one space.
================
Comment at: lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp:1518
+ Status error = NativeProcessLinux::PtraceWrapper(
+ details->ptrace_read_req, GetID(),
+ reinterpret_cast<void *>(range.GetRangeBase()),
----------------
Do you think future architectures will have any different ptrace_read_req/ptrace_write_req than PTRACE_PEEKMTETAGS/PTRACE_POKEMTETAGS.
If not then there is is no advantage of putting them inside MemoryTaggingDetails
================
Comment at: lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h:60
+ struct MemoryTaggingDetails {
+ std::unique_ptr<MemoryTagHandler> handler;
----------------
Add comment about MemoryTaggingDetails
================
Comment at: lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h:66
+ virtual llvm::Expected<MemoryTaggingDetails>
+ GetMemoryTaggingDetails(int32_t type) {
+ return llvm::createStringError(
----------------
Can type be negative. Does gdb remote protocol specifies type as int32?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D95601/new/
https://reviews.llvm.org/D95601
More information about the lldb-commits
mailing list