Hi Keqin,
Thank you for the information. This optimization seems very important, I'm
willing to follow your work. But I'm afraid I do not fully understand how the entire system working. Where can I get some detailed documentations about how does gdb_monitor work and how does fiasco.OC or Genode map memory for each app? I have been read several docs on the Genode website but still puzzled.
Indeed, the inner workings of GDB monitor requires a profound understanding of how Genode works. So maybe, from your perspective, it is not the most suitable topic to start right now. Anyway, I'd like to give to some pointers to start an investigation.
In Genode, the address-space layout of each process is represented by a Region-Manager session (RM session) provided by core. A RM session is similar to a page table but works on a higher level of abstraction. The RM service is briefly described in the documentation:
http://genode.org/documentation/architecture/core#RM_-_managing_address_spac...
However, this description to a bit sparse, in the mailing-list archive, you will find better coverage. I.e., the following thread is insightful:
http://sourceforge.net/mailarchive/forum.php?thread_name=007b01cc29fc%24d2b6...
The GDB monitor works by virtualizing the RM service that is normally provided by core using a local implementation. So all interactions of the debugging target with core can be monitored (and manipulated) by GDB monitor. We call this technique process-level virtualization. The concept is described in the release notes of version 11.11:
http://genode.org/documentation/release-notes/11.11#GDB_debugging_via_applic...
To get the big picture, it is certainly worthwhile to also skim over the surrounding text. The release notes are actually the best resource of documentation about Genode. To get an overview of all the topics covered, you may review the respective introduction sections of the least recent (let's say 8) releases. If a mentioned topic catches your interest, you can decide read the specific section. Btw, all release notes are present in the 'doc/' directory of Genode. So you can grep for the topics of your particular interest.
Have fun with exploring!
Cheers Norman