live tracing is not

Sysprogs forums Forums VisualGDB live tracing is not

This topic contains 13 replies, has 2 voices, and was last updated by  support 1 month ago.

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #30691

    milamber
    Participant

    Ii am using a segger jlink probe  to debug a nucleo-h7a3zi-q board. i have enabled the ‘arm tracing’ option but the ‘live tracing-live coverage’ panel is never updated. it show ‘runs 0 last run never’ for all functions

    #30692

    support
    Keymaster

    Hi,

    This could indicate a hardware problem with the tracing pins, or wiring issues. You can try checking the low-level tracing functionality by disabling the Live Tracing, starting a debug session, and running the following commands in the GDB Session window:

    • maint packet qSeggerSTRACE:config
    • maint packet qSeggerSTRACE:caps
    • maint packet qSeggerSTRACE:start
    • [step over a few instructions]
    • maint packet qSeggerSTRACE:read:4

    If the last command does not return non-zero data, the Segger GDB stub is not reporting the tracing data correctly. If this is the case, please double-check all the wiring and consider contacting Segger support for further help.

     

    #30693

    milamber
    Participant

    I did as you suggested and  it reports 0 data. Please have  in mind  that everything else seems to be working. the jlink flashes the cpu, swv is working

     

    maint packet qSeggerSTRACE:config
    &”maint packet qSeggerSTRACE:config\n”
    sending: “qSeggerSTRACE:config”
    received: “”
    OK
    maint packet qSeggerSTRACE:caps
    &”maint packet qSeggerSTRACE:caps\n”
    sending: “qSeggerSTRACE:caps”
    received: “config;start;stop;read;GetInstStats”
    OK
    maint packet qSeggerSTRACE:start
    &”maint packet qSeggerSTRACE:start\n”
    sending: “qSeggerSTRACE:start”
    received: “00000001”
    OK
    maint packet qSeggerSTRACE:read:4
    &”maint packet qSeggerSTRACE:read:4\n”
    sending: “qSeggerSTRACE:read:4”
    received: “00000000”
    OK

     

     

    C:\Program Files (x86)\SEGGER\JLink\JLinkGDBServerCL.exe -select USB -device STM32H7A3ZI -speed auto -if SWD -port 15971
    SEGGER J-Link GDB Server V7.22a Command Line Version

    JLinkARM.dll V7.22a (DLL compiled Jun 9 2021 16:33:57)

    Command line: -select USB -device STM32H7A3ZI -speed auto -if SWD -port 15971
    —–GDB Server start settings—–
    GDBInit file: none
    GDB Server Listening port: 15971
    SWO raw output listening port: 2332
    Terminal I/O port: 2333
    Accept remote connection: localhost only
    Generate logfile: off
    Verify download: off
    Init regs on start: off
    Silent mode: off
    Single run mode: off
    Target connection timeout: 0 ms
    ——J-Link related settings——
    J-Link Host interface: USB
    J-Link script: none
    J-Link settings file: none
    ——Target related settings——
    Target device: STM32H7A3ZI
    Target interface: SWD
    Target interface speed: auto
    Target endian: little

    Connecting to J-Link…
    J-Link is connected.
    Firmware: J-Link V11 compiled Jun 7 2021 15:48:52
    Hardware: V11.00
    S/N: 261012769
    OEM: SEGGER-EDU
    Feature(s): FlashBP, GDB
    Checking target voltage…
    Target voltage: 3.31 V
    Listening on TCP/IP port 15971
    Connecting to target…
    Connected to target
    Waiting for GDB connection…Connected to 127.0.0.1
    Connected to 127.0.0.1
    Reading all registers
    Read 4 bytes @ address 0x08002F70 (Data = 0x681B4B03)
    Received monitor command: reset
    Resetting target
    Downloading 684 bytes @ address 0x08000000
    Downloading 16032 bytes @ address 0x080002B0
    Downloading 15984 bytes @ address 0x08004150
    Downloading 15920 bytes @ address 0x08007FC0
    Downloading 7044 bytes @ address 0x0800BDF0
    Downloading 428 bytes @ address 0x0800D978
    Downloading 8 bytes @ address 0x0800DB24
    Downloading 8 bytes @ address 0x0800DB2C
    Downloading 4 bytes @ address 0x0800DB34
    Downloading 1092 bytes @ address 0x0800DB38
    Writing register (PC = 0x 8002c2c)
    Read 4 bytes @ address 0x40005024 (Data = 0x00000000)
    Reading register (MSP = 0x20020000)
    Reading register (PSP = 0x 0)
    Reading register (PRIMASK = 0x 0)
    Reading register (BASEPRI = 0x 0)
    Reading register (FAULTMASK = 0x 0)
    Reading register (CONTROL = 0x 0)
    Reading register (FPSCR = 0x 0)
    Reading register (s0 = 0x 0)
    Reading register (s1 = 0x 0)
    Reading register (s2 = 0x 0)
    Reading register (s3 = 0x 0)
    Reading register (s4 = 0x 0)
    Reading register (s5 = 0x 0)
    Reading register (s6 = 0x 0)
    Reading register (s7 = 0x 0)
    Reading register (s8 = 0x 0)
    Reading register (s9 = 0x 0)
    Reading register (s10 = 0x 0)
    Reading register (s11 = 0x 0)
    Reading register (s12 = 0x 0)
    Reading register (s13 = 0x 0)
    Reading register (s14 = 0x 0)
    Reading register (s15 = 0xFFFFFFFF)
    Reading register (s16 = 0x 0)
    Reading register (s17 = 0x 0)
    Reading register (s18 = 0x 0)
    Reading register (s19 = 0x 0)
    Reading register (s20 = 0x 0)
    Reading register (s21 = 0x 0)
    Reading register (s22 = 0x 0)
    Reading register (s23 = 0x 0)
    Reading register (s24 = 0x 0)
    Reading register (s25 = 0x 0)
    Reading register (s26 = 0x 0)
    Reading register (s27 = 0x 0)

    #30694

    support
    Keymaster

    If it reports zero data, VisualGDB will indeed not able able to show anything meaningful, because all it gets is zero data. As we have suggested before, please check this with Segger support – they should have a better insight on what is going on inside the Segger GDB stub and why it doesn’t report the correct values.

    #30719

    milamber
    Participant

    apparently you need J-Trace PRO to have trace information and not a simple j-link. please update the documentation since it is not clear what probe you need to get trace data

    #30720

    support
    Keymaster

    Hi,

    VisualGDB supports 2 mechanisms of gathering coverage information:

    • Using hardware trace pins. This requires expensive trace probes, but doesn’t slow down the code. The tutorial does mention J-Trace.
    • Using code instrumentation. It doesn’t need any special hardware, but slightly slows down the program and uses additional RAM to store the branch counters. This method is described here.

    Hope this clarifies it.

    #30726

    milamber
    Participant

    it does somewhat. I did follow the code instrumentation tutorial but I dont get the same results are you are showing in your tutorial. In your tutorial one can see function like IRQHandlers and o but when i do it i get something like the attached image

    Attachments:
    You must be logged in to view attached files.
    #30728

    support
    Keymaster

    Hi,

    Please try checking that the files containing the functions you want to check are instrumented for coverage (i.e. compiled with the -coverage switch). You can verify it by looking for .gcno files near the .o files. If the .gcno files are not present, the code was not instrumented for coverage.

    Either way, we would advise first getting it working on a basic project by exactly following one of our tutorials, and then using it as a reference point.

    #30731

    milamber
    Participant

    i get an exception when i try to add a file to code coverage

    VisualGDB version: 5.6.1.4141
    —————— System.Exception ——————
    System.Exception: ${BSP_ROOT}/Src/main.c is not excluded from code coverage
    at f73.g1_2(w42 b, Boolean a, String c)
    at hr1.a.o_2(da2 a, Object b)
    at wy2.o1.Exec(Guid& a, UInt32 e, UInt32 d, IntPtr b, IntPtr c)
    trace=[f73.g1_2:217, hr1+a.o_2:407, wy2+o1.Exec:350]

    Attachments:
    You must be logged in to view attached files.
    #30739

    support
    Keymaster

    Hi,

    This error would generally be shown when CMake reports that the file has code coverage enabled, but the CMakeLists files indicate otherwise. Most likely, something went out of sync at some point.

    Please try re-creating the project from scratch and reproducing the problem. If you could share the steps we could follow on our side to reproduce the issue from scratch, we should be able to advise a workaround, or release a hotfix for it.

    #30741

    milamber
    Participant

    I have started a new project based on smt32cubemx project wizard and enabled code coverage. Now I don’t even get the live coverage window.

    Attachments:
    You must be logged in to view attached files.
    #30743

    milamber
    Participant

    when i added an new file to compile (myprintf.c) then the button appeared and the code contained in my file is displayed on live coverage. I would like to see HAL functions covered as well like interrupt handlers

    #30768

    milamber
    Participant

    any update on this? i was able to reproduce it

    #30792

    support
    Keymaster

    Hi,

    As you have never provided the complete non-ambiguous steps to reproduce the problem from scratch, all we could do is re-run our standard coverage tests on a STM32CubeMX project during the v5.6 Beta 3 release cycle. They did uncover a glitch that could be causing this issue and we have fixed it in the Beta 3. Please try downloading and installing it from the download page.

Viewing 14 posts - 1 through 14 (of 14 total)

You must be logged in to reply to this topic.