Aj0SK added inline comments.

================
Comment at: lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp:519
+lldb_private::Status
+MinidumpFileBuilder::AddMemoryList(const lldb::ProcessSP &process_sp) {
+  Status error;
----------------
Aj0SK wrote:
> clayborg wrote:
> > This should take in the CoreStyle and only emit what was asked for.
> > 
> > If style is set to "eSaveCoreStackOnly", then grab only the memory regions 
> > for each thread stack pointer and save only those. 
> > 
> > We can't tell from LLDB APIs if a page is dirty, so if we get 
> > "eSaveCoreDirtyOnly", then we will need to save all memory regions that 
> > have write permissions.
> > 
> > If it is either "eSaveCoreFull"  or "eSaveCoreUnspecified" then save 
> > everything.
> I agree that this code should take care of a CoreStyle but it poses a 
> significant problem to this implementation as it was mainly designed to save 
> smaller Minidumps. This solution stores all of the information in memory 
> before dumping them (this eases an implementation quite a bit because of the 
> way how Minidump pointers (offsets) are working). This implementation, on my 
> machine, exhausted memory before the minidump could be written in case of a 
> full memory dump. At this time, we don't plan to reimplement this solution in 
> the way it would allow to store all the data on disc at the time of minidump 
> creation so there are two possible solutions that I see:
> 
> 1. If the type of the CoreStyle is full or dirty, this plugin will return 
> false from the SaveCore function. Then maybe the default CoreStyle for this 
> plugin should be changed to "eSaveCoreStackOnly".
> 
> 2. To the best of my knowledge, it should be theoretically possible to 
> reimplement Dump() method to sort of take special care of a MemoryListStream, 
> dumping also the memory information at the end of the minidump file as I 
> think the memory dump is the most stressful for the memory and otherwise 
> there is no problem with this.
To state my preference, I would rather stick to the first option and landed a 
minimum viable product. The only reason for this is that I have this version 
way better tested and also I am not entirely sure about how minidump deals with 
the whole memory dumps as it can be a little problematic for a big memory 
chunks... Then, I would rather add the necessary changes in the next patch...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108233/new/

https://reviews.llvm.org/D108233

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

Reply via email to