zturner added inline comments.

================
Comment at: source/Plugins/Process/minidump/MinidumpParser.cpp:222
@@ -154,1 +221,2 @@
+  return MinidumpExceptionStream::Parse(data);
 }
----------------
dvlahovski wrote:
> Now that I return an ArrayRef<ModuleList>, which is basically a reinterpret 
> cast of a piece of memory to a list of modules, do you think that this is 
> still something good to do?
> 
> At least for now, I'm calling this method only once in the DoLoadCore 
> initializing method of the plugin (still unsubmitted code) and then creating 
> the ModuleSpecs for each module.
Yea I suppose this is fine now.

================
Comment at: source/Plugins/Process/minidump/MinidumpTypes.cpp:21
@@ +20,3 @@
+llvm::StringRef
+lldb_private::minidump::consumeString(llvm::ArrayRef<uint8_t> &Buffer) {
+  auto str = llvm::StringRef(reinterpret_cast<const char *>(Buffer.data()),
----------------
dvlahovski wrote:
> So, breakpad specific string in the Minidump files are not UTF-16 string, but 
> just ascii strings in the file (not null terminated).
> When I get the stream "LinuxProcStatus" I know how big it is and set it in 
> the ArrayRef.
> So basically it is my intention here to parse the entire ArrayRef to a string
In that case it seems like this function is unnecessary.  If all it does is 
reinterpret an entire `ArrayRef` as a `StringRef`, it seems better to do that 
at each callsite.  A generic name like `consumeString` makes people think of 
either zero terminated string or length prefixed strength, and this one is 
neither.

Another option might be to add an additional length argument to the 
`consumeString` function, and then call it like `llvm::StringRef S = 
consumeString(Buffer, Buffer.size())` with a comment about why you're treating 
the entire thing as a string.


https://reviews.llvm.org/D24385



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to