labath added a comment.

In https://reviews.llvm.org/D42145#992289, @owenpshaw wrote:

> > So the main question is: do we want WriteMemory to work anywhere and always 
> > try to do the right thing, or return an error an the user would be expected 
> > to know to check the memory region you are writing to and know to call 
> > "Process::WriteFlash(...)". I vote to keep things simple and have 
> > Process::WriteMemory() just do the right thing. I am open to differing 
> > opinions, so let me know what you guys think.
>
> What are other use cases for writing to flash memory from lldb?  Since I 
> can't think of any, I'm biased towards keeping this implementation simple and 
> narrowly focused on object loading, which means not worrying about preserving 
> the unwritten parts of erased blocks, and giving an error for other write 
> attempts to flash regions.


How does the flash memory behave from the POV of the debugged process? E.g. if 
it does something like:

  char *Flash = /*pointer to flash memory*/
  *Flash = 47;

will that succeed, or will it get some exception? I'm guessing it's the 
latter.. If that's the case, then I'm also leaning towards *not* making 
WriteMemory "just work", as we cannot make the existence of flash memory 
transparent without e.g. fixing how breakpoint setting in the flashed region 
works.

However, I'm not sure it should be the responsibility of the ObjectFile to know 
about the various memory kinds. Maybe we could still keep that in the process 
class. We could have the ObjectFile create a structure describing the desired 
memory layout (just like in the batch-WriteMemory version), and then pass it to 
some Process function, which would handle the flash details. (So in essence, 
the implementation would remain the same, you just wouldn't call the function 
WriteMemory, but something else).


https://reviews.llvm.org/D42145



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

Reply via email to