labath added a comment.
I didn't go into all the details of this patch, as I am guessing this will
still go through a number of revisions, but I did make a couple notes of things
that caught my eye while glancing over it.
================
Comment at: lldb/include/lldb/Breakpoint/BreakpointInjectedSite.h:50
+class BreakpointInjectedSite
+ : public std::enable_shared_from_this<BreakpointInjectedSite>,
+ public BreakpointSite {
----------------
BreakpointSite is already shared_ptr-enabled. Why this? I don't think that's
how you're supposed to use this class.
================
Comment at: lldb/include/lldb/Breakpoint/BreakpointSite.h:54-56
+ static bool classof(const BreakpointSite *bp_site) {
+ return bp_site->getKind() == eKindBreakpointSite;
+ }
----------------
This is weird. So, in OO terminology, `BreakpointInjectedSite` "is-a"
`BreakpointSite`, but if you ask `llvm::isa<BreakpointSite>(injected_site)`, it
will return false?
================
Comment at: lldb/include/lldb/Expression/ExpressionVariable.h:210
+public:
+ typedef AdaptedIterable<collection, lldb::ExpressionVariableSP,
+ vector_adapter>
----------------
What is the purpose of this `AdaptedIterable`, and why is it better than just
returning say `ArrayRef<lldb::ExpressionVariableSP` ?
================
Comment at: lldb/source/Breakpoint/BreakpointInjectedSite.cpp:226
+ m_trap_addr = addr;
+ LLDB_LOGV(log, "Injected trap address: {:llx}", addr);
+ return true;
----------------
This isn't a proper format string. You can find their general description here
<http://llvm.org/docs/ProgrammersManual.html#formatting-strings-the-formatv-function>,
and the specifics are generally next to the definition of the actual format
provider (e.g.
<https://github.com/llvm-mirror/llvm/blob/master/include/llvm/Support/FormatProviders.h#L102>).
I find it very helpful to look at their unit tests too:
<https://github.com/llvm-mirror/llvm/blob/master/unittests/Support/FormatVariadicTest.cpp>.
================
Comment at: lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h:96-98
+ uint64_t GetJumpOpcode() override { return X64_JMP_OPCODE; }
+
+ size_t GetJumpSize() override { return X64_JMP_SIZE; }
----------------
replace with `ArrayRef<uint8_t> GetJumpOpcode();` or something similar.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66249/new/
https://reviews.llvm.org/D66249
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits