The application can have multiple disjoint address ranges that might be interesting to exam. The default range being shown is the executable code from the current program counter, which is often within the least interesting memory range because it is 1) already available in the disassembly window, 2) usually doesn't actually change. The memory window does not provide any functionality to select a different address range other than 'scrolling' through the address range provided by the spin buttons, which is both impractical and will often lead to invalid memory accesses.
There can be a lot of segments to choose from, firefox has 320. The user could select the segment, and then specify the offset. Would replace the "pc" information in the memory window case.
Actually, what I suggested was making it possible for the user to select the segment to work in, and that within the segment the user could then still either use arbitrary addresses or specify an offset from the base address. It offers an additional mode of specifying a valid address. This can be expanded by adding in a default segment that covers the entire address range (allowing any address to be specified). In that case, an offset is identical to an actual address.
2007-09-30 Zhao Shujing <pearly.zhao@oracle.com> * gladedir/memorywindow.glade: Change the top text "current program counter" to segment combox. Fixes #4614 and #4619. * gladedir/disassemblywindow.glade: Ditto. * memory/MemoryWindow.java: Added handling for segment. Added warning dialogs when the address can't be accessed and when the symbol is not in current context. Added handling when too many rows be added. Fixes #4870. * disassembler/DisassemblyWindow.java: Ditto.
*** Bug 4619 has been marked as a duplicate of this bug. ***