[PATCH] D42145: [lldb] Use vFlash commands when writing to target's flash memory regions

Owen Shaw via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 28 15:54:02 PST 2018

owenpshaw added a comment.

> Since there is just one caller of this function maybe we don't even need to that fancy. Could the LoadInMemory function do the shifting itself?
>  I'm thinking of something like where it takes the load bias as the argument and then adds that to the physical address it obtains from the object file. Thinking about that, I'm not even sure the function should be operating at the section level. If it's going to be simulating a loader, shouldn't it be based on program headers and segments completely (and not just use them for obtaining the physical address)?

The original LoadInMemory thread from over a year ago discusses segments vs sections a little bit: http://lists.llvm.org/pipermail/lldb-dev/2016-December/011758.html.  Sounds like gdb used sections, so that was deemed ok for lldb.  It also fit with the pre-existing "target modules load" command that allowed section addresses to be specified individually.  At one point, Greg suggests:

> Since the arguments to this command are free form, we could pass these arguments to ObjectFile::LoadInMemory() and let each loader (ObjectFileELF and ObjectFileMach) determine what arguments are valid

But that didn't end up in the implementation.  Perhaps it should, and ObjectFileELF could disallow any --load that specified sections individually.  And if we're doing a special ObjectFileELF::LoadInMemory anyway, it could go ahead and use segments.



More information about the llvm-commits mailing list