Starting a thread to collect some ideas on how this could be done: - Launch one GDB per MMU context. GDB does not have a concept of multiple symbol tables w/overlapping address spaces, does it? GDB has a thread concept, but that's within a single address space.
- Somehow when the CPU is halted, we'll need to decide which GDB server the halt is for... - How will the user be able to set a breakpoint in e.g. the kernel or app? One cheap trick would be to use hardware breakpoints. When the CPU halts, it could be a false positive, i.e. the wrong MMU context. At this point we might have some method to decide whether to continue execution or halt the right GDB server... - Once the CPU is halted inside the right MMU context, we can switch to software breakpoints because we have access to the memory we're going to write to. - Does swapping affect things at all? - Instrumenting the kernel? Why? How? -- Øyvind Harboe http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer _______________________________________________ Openocd-development mailing list [email protected] https://lists.berlios.de/mailman/listinfo/openocd-development
