Hi, On Wed 24 Apr 2013 22:23, Andy Wingo <[email protected]> writes:
> I'll change the linker to always emit sections and segments that > correspond exactly in their on-disk layout and in their in-memory > layout. (In ELF terms: segments are contiguous, with p_memsz == > p_filesz.) I'll put commonly needed things at the beginning, and > debugging info and the section table at the end. Then I'll just map > the whole thing with PROT_READ, and set PROT_WRITE on those > page-aligned segments that need it. (Obviously in the future, > PROT_EXEC as well.) > > Then I'll just record a list of ELF objects that have been loaded. I've done this now. If you are on wip-rtl, you will need to recompile all of your .go files, as the loader now checks for these constraints. > Simple bisection will map IP -> ELF, and from there we have the section > table in memory (lazily paged in by the virtual memory system) and can > find the symtab and other debug info. I haven't done this yet, but at this point we can do it in Scheme I think. Regards, Andy -- http://wingolog.org/
