[SOLVED] JTrace Cortex-M requirements

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] JTrace Cortex-M requirements

    Hi,

    I am thinking of purchasing a JTrace Pro for Cortex-M, but I would like to know one thing first which I could not find in the JTrace description.

    What kind of binary is required in the target to use the trace streaming, profiler and timeline? Does the binary need debugging symbols (-g or -ggdb with arm gcc), which the normal JLink debugger uses, or can it trace without debugging symbols present in the target (-Os + -g0) ?
    I sometimes have issues with release build binaries that won't run correctly, yet their debug counterpart versions execute correctly. It would be very helpful to trace the release build version :P .

    Thanks in advance,

    Ewout Boks
  • Hello Ewout,

    Thank you for your inquiry.
    If you need to know what the application context is and want to use the streaming trace e.g. timeline feature we recommend having an elf file with all debug information and if possible without any optimization.
    segger.com/products/developmen…echnology/trace-features/
    This features might also work with optimization levels maximum if the application is not to complex and Ozone can deconstruct the context from other information.

    However in release builds debug information is mostly not available so some of the streaming trace features might not work correctly. However what will still work is the "backtrace", called instruction trace in the posted link.
    So you will still be able to see which instructions have been executed in past in correct order without gaps. Just without the corresponding symbol information.

    I hope this answers your question.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Thank you for you answer! It will be harder to trace an exception then in release mode, but at least it is feasible to find the culprit. Reverse engineering with a map file will then be required I assume.

    Ewout
  • Hello,

    Correct as the J-Trace PRO has not application reference but only gets information from that target which instruction has been executed but not in what context.
    When you get your hands on a J-Trace PRO the following article will explain how you can use trace without having source or symbol information of the application:
    wiki.segger.com/Getting_unknow…sses_in_instruction_trace

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.