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/

Reply via email to