GDB for Multiprocessor Architecture

Andrew Cagney cagney@gnu.org
Wed Dec 3 18:28:00 GMT 2003


> Hi,
> How can GDB be used to debug an application running on a chip that has n
> number of similar CPUs. These CPUs share memories and run different code
> images.
> I plan to do a debugging session using the hardware probe and the GDB
> remote protocol. My target does not have any OS support as Linux or
> RTEMS but the host is a Linux box.
> My question is how can I get to know that currently GDB is talking to
> which CPU? Is it possible for me to do something like 
> gdb> load image1.o
> gdb> CPU=1
> gdb> |get register contents|
> gdb> load image2.o
> gdb> CPU=3
> gdb> |get register contents|
> 
> and such similar stuff.
> 
> One way of implementing this is using the thread model but then each CPU
> has altogether different code image to execute. Shall I have multiple
> sessions of GDB, one per CPU? But again if a debug exception is raised
> say a breakpoint is hit, how will I know on the host side which CPU has
> hit the breakpoint.
> 
> Has anybody done a similar task on any other target? Any help on this
> fron shall be grateful.

CPU's can be modeled using GDB's thread framework.  However, at present 
the model doesn't extend as far as modeling separate memory regions for 
each CPU (something that needs to be fixed).

Andrew




More information about the Gdb mailing list