using libdebugger

Chris Johns chrisj at rtems.org
Fri May 1 07:10:35 UTC 2020


On 1/5/20 2:13 am, Mario Palomares wrote:
> Well, really useful information Chris thanks, no worries about the lack 
> of documentation completely understandable.

Thanks.

> Just let me ask you some more questions

Sure, no problem.

> - I´am trying to use it on a raspberry pi 2B, is it currently supported, 

I am not sure. Each ARM has a range of differences in what is 
implemented. It depends on the model, arch, implementer, and what they 
configure. For example the TI processor on Beagleboneblack does not let 
software enable the debug hardware via software so you need to add a 
small mod to the board and a complex piece of code runs and uses the 
JTAG interface to enable the bit.

> do i have to change something on the snippet of code you showed me?. 

Not the code I showed you. If it does not work it will be deep in the 
ARM backend of libdebugger.

> Note: In the BSP i compiled i have all the debugger header files so y 
> suppose it is supported.

It is available however being functional is different. The ARM is 
experimental.

> - Where do you specify the ip of the GDB server ?

This is the IP address of your board. It is the IP address of the 
network interface on your board.

> - I don´t understand the rtems_printer usage, shouldn´t the debug 
> server output always go to the debug client instead of the 
> stdout/stderr/kernel?

The rtems_printer is an interface where core code can output to an 
rtems_printer object and the supplied interface (object) will handle the 
output. Using stdout means the debug server will output to stdout, or 
stderr and kernel means using printk.

> - This one is just for curiosity. What are the rest of header files used 
> for, the ones in "rtems/debugger/"

<looking> For reference they are ...

https://git.rtems.org/rtems/tree/cpukit/include/rtems/debugger

rtems-debugger-bsp.h:
  Provide BSP or arch specific support for difficult hardware.
  For example rtems_debugger_arm_debug_configure() is used on the
  Beagleboneblack to set up the hardware. These are used in BSPs.

rtems-debugger-remote.h:
  Remote transport interface. Allow users the ability to add a
  specific type of transport. Currently TCP is provided but USB,
  serial of spacewire could be used if someone is keen.

rtems-debugger-server.h:
  The server. Used to start, stop and manage the server.

> Regarding a hardware based debugging solution i am also using right now 
> JTAG with OpenOCD but i am experiencing some problems. Once 
> the conection is established I can connect thorught telnet but not from 
> GDB, i still have to investigate on my own, but if I finally i can´t 
> solve i will ask here.

Oh OK you have a JTAG connector on your RPi. Nice. There is an option 
somewhere in openocd to enable the GDB server. You then use the target 
command in GDB to connect to it.

> I would also like to ask you about another thing i couldn´t find on the 
> documentation. Apparently there is a way to set a ser2net daemon which 
> enables you to connect to the target console through a telnet 
> connection. As with the debugger i don´t know how to set it up.

The best resource is `man ser2net`. This is only for the serial console.

Chris


More information about the users mailing list