v10.1.0 breaks thread aware debugging with JLink

Hi, Just an FYI that when I upgraded, thread aware debugging no longer works due to this: Received symbol: xDelayedTaskList1 (0x00000000) ERROR: Mandatory symbol xDelayedTaskList1 not found. Regards Alex.

v10.1.0 breaks thread aware debugging with JLink

Thanks for taking the time to report this – really appreciate it. Which debugger plug-in are you using? This will be because the variable is now function scope, rather than file scope, although the pointer to it is still file scope. That particular change can be reverted – it was just neater and removed a lint warning.

v10.1.0 breaks thread aware debugging with JLink

Hi Richard, So its Segger’s JLink plugin e.g. /Applications/SEGGER/JLink/GDBServer/RTOSPlugin_FreeRTOS.dylib… Its the latest version and both OSX and Windows behave the same. Regards, Alex.

v10.1.0 breaks thread aware debugging with JLink

There is also a problem with Segger Ozone and the FreeRTOS plugin. I’m using Ozone 2.56u, STM32H7 Nucleo with reflashed STlink on-board adapter. FreeRTOS 10.0.0: https://i.imgur.com/qmsZmU5.png FreeRTOS 10.1.0: https://i.imgur.com/jaSPgpK.png same result after moving xDelayedTaskList1 ,2 from function to file scope (but I don’t get an error message in Ozone either!) There seem to be a lot of internal changes between 10.0.0 and 10.1.0.. likely Segger will have to update their plugins.

v10.1.0 breaks thread aware debugging with JLink

Can you please try moving the two lines: ~~~ PRIVILEGEDDATA static Listt xDelayedTaskList1; PRIVILEGEDDATA static Listt xDelayedTaskList2; ~~~ out of prvInitialiseTaskLists() to instead be function scope as they were in the previous version and let me know if that fixes the problem. Thanks.

v10.1.0 breaks thread aware debugging with JLink

It works, if the same order of Lists as in 10.0.0 is restored, i.e.: ~~~ /* Lists for ready and blocked tasks. ——————–*/
PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ]; PRIVILEGED_DATA static List_t xDelayedTaskList1;
PRIVILEGED_DATA static List_t xDelayedTaskList2;
PRIVILEGED_DATA static List_t * volatile pxDelayedTaskList;
PRIVILEGED_DATA static List_t * volatile pxOverflowDelayedTaskList;
PRIVILEGED_DATA static List_t xPendingReadyList;
~~~ If I move the definition of xDelayedTaskList1/2 somewhere else, Ozone doesn’t find it. It seems to take the position of pxReadyTasksLists and assumes the other lists in fixed order.

v10.1.0 breaks thread aware debugging with JLink

The problem seems to be much larger. To my knowledge and understanding it is not about the order of these variables. I have ported a few applications to 10.1.0. I can confirm that the Segger debug awareness is not working any more with Eclipse (gdb based debugging). I guess it is because of changes in the task descriptor from 10.0.1 to 10.1.0. It affects as well the NXP FreeRTOS plugins (https://mcuoneclipse.com/2016/07/06/freertos-kernel-awareness-for-eclipse-from-nxp/) which are not not able to display the tasks any more. I’ll keep digging into the reasons what is causing this. Erich

v10.1.0 breaks thread aware debugging with JLink

Hi Erich – appreciate your help – need to fix asap.

v10.1.0 breaks thread aware debugging with JLink

Good info – thanks.

v10.1.0 breaks thread aware debugging with JLink

FYI – the IAR task aware plug in works fine with V10.1.0. The StateViewer tasks window works fine also, but the queue window needed the struct QueueDef_t type renaming back to its original struct QueueDefinition name to work. This was a very minor edit. Will look at the Eclipse StateViewer plug-in next.

v10.1.0 breaks thread aware debugging with JLink

This also fixes the problem for me (vanilla openocd-0.10.0). Openocd is the backend that most of the eclipse/gdb based stuff is using…

v10.1.0 breaks thread aware debugging with JLink

Try the code in the head revision of SVN now – it works with the Eclipse and IAR StateViewer plug-ins. I’ve not tried the Segger one yet. Please let me know your findings.

v10.1.0 breaks thread aware debugging with JLink

The head revision in SVN is now working with the Segger plug-in again. Please verify. @Erich – can you please check the head revision is working for you too. Once I hear back I can provide a patch release so the plug-ins are all functioning again.

v10.1.0 breaks thread aware debugging with JLink

Please try V10.1.1 – just released.

v10.1.0 breaks thread aware debugging with JLink

Ok, Segger Ozone seems to work again! But Segger SystemView 2.52b timeline now shows tasks in arbitrary order, instead of sorted by priority :/ Unfortunately, I don’t have time to investigate further at the moment.