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

Reply via email to