I will check out your suggestion.
Under the hood it uses a Qualcomm abstraction implementation of the FreeRTOS allocator. Qualcomm gives the compiler the ability to use ThreadX or FreeRTOS pre-compiled libraries and FreeRTOS is the one we use. The Qualcomm uses it’s own printf layer “QCLI_Printf” and this is statically allocated for transmission but who knows what else it is doing on assembly of the strings.