NuttX-aware debugging.

2022-06-22 Thread Fotis Panagiotopoulos
Hello,

I am in need of debugging NuttX in a thread-aware fashion, as I still hit a
dead-lock in networking that I haven't managed to track down yet.

I am using a custom target, based on the STM32F427VI and JLink as the
debugger.

I see that there is a plug-in for JLink GDB that was added in #4810.
Unfortunately, I never got this working. I commented on the PR, but I got
ignored.

So:

1. I cannot build the plug-in.
Running:

make -C tools -f Makefile.host all

I get:

/usr/bin/ld: /tmp/cclxEqhk.o: relocation R_X86_64_32 against
`.rodata.str1.8' can not be used when making a shared object; recompile
with -fPIC
collect2: error: ld returned 1 exit status
make: *** [Makefile.host:231: jlink-nuttx.so] Error 1

I added the -fPIC option, and it was built successfully.
If this is actually the correct option, then I guess the makefile has to be
fixed?


2. After building the plug-in with -fPIC, it crashes during start with a
segmentation fault.

Here is an example output:
https://pastebin.com/U1tqtMND


Has anyone managed to use this?
Any idea what the fault may be?


Re: NuttX-aware debugging.

2022-06-22 Thread Alan Carvalho de Assis
Hi Fotis,

There are two (at least) options to debug NuttX with Thread awareness:

1) Using OpenOCD + GDB: some years ago Mr. Masayuki-san submitted
support to OpenOCD get thread awareness;

2) Using Segger JLink + GDB: this is the option you are trying. I
think we don't have a documentation to it yet. I never tried it, but
Mr. Xiang used and he included the support on NuttX.

(N.B.: there is also ORBTrace tool that people can use with NuttX to
get thread awareness, our friend Dave Marples said it is available,
see: https://discord.com/channels/716091708336504884/716091708819111959
, last NuttX Online Workshop he also presented about it, the video is
available at NuttX Channel on YouTube)

I only used option 1 until now, you can find some old thread about it:

https://lists.apache.org/thread/hzx8wfh178j6hzfnb1qfpxmv5c8qb2xm

BR,

Alan

On 6/22/22, Fotis Panagiotopoulos  wrote:
> Hello,
>
> I am in need of debugging NuttX in a thread-aware fashion, as I still hit a
> dead-lock in networking that I haven't managed to track down yet.
>
> I am using a custom target, based on the STM32F427VI and JLink as the
> debugger.
>
> I see that there is a plug-in for JLink GDB that was added in #4810.
> Unfortunately, I never got this working. I commented on the PR, but I got
> ignored.
>
> So:
>
> 1. I cannot build the plug-in.
> Running:
>
> make -C tools -f Makefile.host all
>
> I get:
>
> /usr/bin/ld: /tmp/cclxEqhk.o: relocation R_X86_64_32 against
> `.rodata.str1.8' can not be used when making a shared object; recompile
> with -fPIC
> collect2: error: ld returned 1 exit status
> make: *** [Makefile.host:231: jlink-nuttx.so] Error 1
>
> I added the -fPIC option, and it was built successfully.
> If this is actually the correct option, then I guess the makefile has to be
> fixed?
>
>
> 2. After building the plug-in with -fPIC, it crashes during start with a
> segmentation fault.
>
> Here is an example output:
> https://pastebin.com/U1tqtMND
>
>
> Has anyone managed to use this?
> Any idea what the fault may be?
>


Re: NuttX-aware debugging.

2022-06-22 Thread Xiang Xiao
Did you enable CONFIG_DEBUG_TCBINFO in your defconfig:
incubator-nuttx/Kconfig at master · apache/incubator-nuttx (github.com)

The plugin needs the g_tcbinfo to know the critical offset of the field in
tcb_s structure.

On Thu, Jun 23, 2022 at 2:10 AM Fotis Panagiotopoulos 
wrote:

> Hello,
>
> I am in need of debugging NuttX in a thread-aware fashion, as I still hit a
> dead-lock in networking that I haven't managed to track down yet.
>
> I am using a custom target, based on the STM32F427VI and JLink as the
> debugger.
>
> I see that there is a plug-in for JLink GDB that was added in #4810.
> Unfortunately, I never got this working. I commented on the PR, but I got
> ignored.
>
> So:
>
> 1. I cannot build the plug-in.
> Running:
>
> make -C tools -f Makefile.host all
>
> I get:
>
> /usr/bin/ld: /tmp/cclxEqhk.o: relocation R_X86_64_32 against
> `.rodata.str1.8' can not be used when making a shared object; recompile
> with -fPIC
> collect2: error: ld returned 1 exit status
> make: *** [Makefile.host:231: jlink-nuttx.so] Error 1
>
> I added the -fPIC option, and it was built successfully.
> If this is actually the correct option, then I guess the makefile has to be
> fixed?
>
>
> 2. After building the plug-in with -fPIC, it crashes during start with a
> segmentation fault.
>
> Here is an example output:
> https://pastebin.com/U1tqtMND
>
>
> Has anyone managed to use this?
> Any idea what the fault may be?
>


Re: NuttX-aware debugging.

2022-06-22 Thread Fotis Panagiotopoulos
Yes I enabled CONFIG_DEBUG_TCBINFO.
(When disabled, debugging works normally but without being thread-aware).

It seems that it is either a bug in the plugin itself, or something is
wrong with my build.

If it matters, I am using Fedora 36 with gcc (GCC) 12.1.1 20220507 (Red Hat
12.1.1-1)

Maybe someone can provide me with a pre-build .so file to test if this is
the cause?




On Wed, Jun 22, 2022 at 10:30 PM Xiang Xiao 
wrote:

> Did you enable CONFIG_DEBUG_TCBINFO in your defconfig:
> incubator-nuttx/Kconfig at master · apache/incubator-nuttx (github.com)
>  >
> The plugin needs the g_tcbinfo to know the critical offset of the field in
> tcb_s structure.
>
> On Thu, Jun 23, 2022 at 2:10 AM Fotis Panagiotopoulos  >
> wrote:
>
> > Hello,
> >
> > I am in need of debugging NuttX in a thread-aware fashion, as I still
> hit a
> > dead-lock in networking that I haven't managed to track down yet.
> >
> > I am using a custom target, based on the STM32F427VI and JLink as the
> > debugger.
> >
> > I see that there is a plug-in for JLink GDB that was added in #4810.
> > Unfortunately, I never got this working. I commented on the PR, but I got
> > ignored.
> >
> > So:
> >
> > 1. I cannot build the plug-in.
> > Running:
> >
> > make -C tools -f Makefile.host all
> >
> > I get:
> >
> > /usr/bin/ld: /tmp/cclxEqhk.o: relocation R_X86_64_32 against
> > `.rodata.str1.8' can not be used when making a shared object; recompile
> > with -fPIC
> > collect2: error: ld returned 1 exit status
> > make: *** [Makefile.host:231: jlink-nuttx.so] Error 1
> >
> > I added the -fPIC option, and it was built successfully.
> > If this is actually the correct option, then I guess the makefile has to
> be
> > fixed?
> >
> >
> > 2. After building the plug-in with -fPIC, it crashes during start with a
> > segmentation fault.
> >
> > Here is an example output:
> > https://pastebin.com/U1tqtMND
> >
> >
> > Has anyone managed to use this?
> > Any idea what the fault may be?
> >
>


Re: NuttX-aware debugging.

2022-06-22 Thread Abdelatif Guettouche
> 1) Using OpenOCD + GDB: some years ago Mr. Masayuki-san submitted
support to OpenOCD get thread awareness;

The current support in upstream OpenOCD is outdated.  If you want to
use OpenOCD maybe you can try building from
https://github.com/Ouss4/openocd-esp32/tree/nuttx
Although I focused on Xtensa and RISC-V and did very little testing on
ARM, most of the code is platform independent.

On Wed, Jun 22, 2022 at 11:37 PM Fotis Panagiotopoulos
 wrote:
>
> Yes I enabled CONFIG_DEBUG_TCBINFO.
> (When disabled, debugging works normally but without being thread-aware).
>
> It seems that it is either a bug in the plugin itself, or something is
> wrong with my build.
>
> If it matters, I am using Fedora 36 with gcc (GCC) 12.1.1 20220507 (Red Hat
> 12.1.1-1)
>
> Maybe someone can provide me with a pre-build .so file to test if this is
> the cause?
>
>
>
>
> On Wed, Jun 22, 2022 at 10:30 PM Xiang Xiao 
> wrote:
>
> > Did you enable CONFIG_DEBUG_TCBINFO in your defconfig:
> > incubator-nuttx/Kconfig at master · apache/incubator-nuttx (github.com)
> >  > >
> > The plugin needs the g_tcbinfo to know the critical offset of the field in
> > tcb_s structure.
> >
> > On Thu, Jun 23, 2022 at 2:10 AM Fotis Panagiotopoulos  > >
> > wrote:
> >
> > > Hello,
> > >
> > > I am in need of debugging NuttX in a thread-aware fashion, as I still
> > hit a
> > > dead-lock in networking that I haven't managed to track down yet.
> > >
> > > I am using a custom target, based on the STM32F427VI and JLink as the
> > > debugger.
> > >
> > > I see that there is a plug-in for JLink GDB that was added in #4810.
> > > Unfortunately, I never got this working. I commented on the PR, but I got
> > > ignored.
> > >
> > > So:
> > >
> > > 1. I cannot build the plug-in.
> > > Running:
> > >
> > > make -C tools -f Makefile.host all
> > >
> > > I get:
> > >
> > > /usr/bin/ld: /tmp/cclxEqhk.o: relocation R_X86_64_32 against
> > > `.rodata.str1.8' can not be used when making a shared object; recompile
> > > with -fPIC
> > > collect2: error: ld returned 1 exit status
> > > make: *** [Makefile.host:231: jlink-nuttx.so] Error 1
> > >
> > > I added the -fPIC option, and it was built successfully.
> > > If this is actually the correct option, then I guess the makefile has to
> > be
> > > fixed?
> > >
> > >
> > > 2. After building the plug-in with -fPIC, it crashes during start with a
> > > segmentation fault.
> > >
> > > Here is an example output:
> > > https://pastebin.com/U1tqtMND
> > >
> > >
> > > Has anyone managed to use this?
> > > Any idea what the fault may be?
> > >
> >


Re: NuttX-aware debugging.

2022-06-22 Thread Alan Carvalho de Assis
Ahhh, so it is your Fedora 36 issue, hahaha

Here on Ubuntu "make -C tools -f Makefile.host all" works fine.

It created the jlink-nuttx.so file.

BR,

Alan

On 6/22/22, Fotis Panagiotopoulos  wrote:
> Yes I enabled CONFIG_DEBUG_TCBINFO.
> (When disabled, debugging works normally but without being thread-aware).
>
> It seems that it is either a bug in the plugin itself, or something is
> wrong with my build.
>
> If it matters, I am using Fedora 36 with gcc (GCC) 12.1.1 20220507 (Red Hat
> 12.1.1-1)
>
> Maybe someone can provide me with a pre-build .so file to test if this is
> the cause?
>
>
>
>
> On Wed, Jun 22, 2022 at 10:30 PM Xiang Xiao 
> wrote:
>
>> Did you enable CONFIG_DEBUG_TCBINFO in your defconfig:
>> incubator-nuttx/Kconfig at master · apache/incubator-nuttx (github.com)
>> > >
>> The plugin needs the g_tcbinfo to know the critical offset of the field
>> in
>> tcb_s structure.
>>
>> On Thu, Jun 23, 2022 at 2:10 AM Fotis Panagiotopoulos
>> > >
>> wrote:
>>
>> > Hello,
>> >
>> > I am in need of debugging NuttX in a thread-aware fashion, as I still
>> hit a
>> > dead-lock in networking that I haven't managed to track down yet.
>> >
>> > I am using a custom target, based on the STM32F427VI and JLink as the
>> > debugger.
>> >
>> > I see that there is a plug-in for JLink GDB that was added in #4810.
>> > Unfortunately, I never got this working. I commented on the PR, but I
>> > got
>> > ignored.
>> >
>> > So:
>> >
>> > 1. I cannot build the plug-in.
>> > Running:
>> >
>> > make -C tools -f Makefile.host all
>> >
>> > I get:
>> >
>> > /usr/bin/ld: /tmp/cclxEqhk.o: relocation R_X86_64_32 against
>> > `.rodata.str1.8' can not be used when making a shared object; recompile
>> > with -fPIC
>> > collect2: error: ld returned 1 exit status
>> > make: *** [Makefile.host:231: jlink-nuttx.so] Error 1
>> >
>> > I added the -fPIC option, and it was built successfully.
>> > If this is actually the correct option, then I guess the makefile has
>> > to
>> be
>> > fixed?
>> >
>> >
>> > 2. After building the plug-in with -fPIC, it crashes during start with
>> > a
>> > segmentation fault.
>> >
>> > Here is an example output:
>> > https://pastebin.com/U1tqtMND
>> >
>> >
>> > Has anyone managed to use this?
>> > Any idea what the fault may be?
>> >
>>
>