Marus / cortex-debug

Visual Studio Code extension for enhancing debug capabilities for Cortex-M Microcontrollers
MIT License
987 stars 238 forks source link

Variables window <unknown> #295

Closed microwavesafe closed 2 years ago

microwavesafe commented 4 years ago

I am having a problem with the Variables window. Seemingly randomly the local variables will all be set to \<unknown> on a break point. I have checked and the call stack looks OK and you can also look at the variables by setting a watch.

Screenshot from 2020-05-21 09-10-15

Once this has happened the local variables will not be shown again until I disconnect the debugger and reprogram / reconnect the target.

I am using version 0.3.7-pre2 of the extension and version 1.45.1 VSCode. I've attached the debug log output, hopefully it will help.

variable_unknown_log.txt

microwavesafe commented 4 years ago

A couple of updates. I have now seen the local variables come back to life after a few break point hits, but then disappear again. Also I have seen this error pop up.

Could not get stack variables: Selected thread is running. (from stack-list-variables --thread 1 --frame 0 --simple-values)

Which may have something to do with it?

RisinT96 commented 4 years ago

I've been having similar problems since a recent vscode update (can't say which one excatly), the variables in local/watch would stop loading, which usually requires re-starting the debug session, sometimes even that doesn't help, makes debugging a pain.

It's probably not a problem with the gdb interface since viewing variables through mouse-hover still works properly.

haneefdm commented 4 years ago

I cannot duplicate this issue. I primarily use a Mac. Which platform is this happening on? The log file attached by @microwavesafe seems like Linux. @RisinT96 Are you seeing this on Linux as well? Please respond. My current Linux setup is a bit botched.

There have been unexpected timing/ordering differences with VSCode and how it interacts with debuggers but something is still amiss.

Maybe I need more detailed steps to reproduce the problem. Any help is appreciated.

RisinT96 commented 4 years ago

Hello, I've been experiencing this on multiple Windows 10 setups, when using an RTOS plug-in (JLink GDB Server), the thread list is also affected sometimes.

It seems to happen randomly, while stepping, stopping on breakpoints, sometimes even right on launch.

I'd love to help, I've been a bit busy at work lately and had no spare time, once I have enough time on my hands I'd like to participate actively.

While I'm at it, is there a particular reason this extension implements the whole package, instead of building on top of cppdbg? It seems like that could solve a lot of trouble/things to maintain.

microwavesafe commented 4 years ago

I am on Linux. I think it may be JLink hardware related. Recently I've been doing some prototype code on an stm32f4-discovery board. I converted the onboard debugger to JLink compatible and under this arrangement it hasn't happened once. The onboard debugger is slower than the JLink plus, so I was wondering if this held any clues?

haneefdm commented 4 years ago

Ohh, could this be RTOS related? One of the things that happen with RTOSes is that the thread information is totally bogus until after the C initialization runs and after the RTOS has actually been initialized. However, everything looks fine afterward. Generally, by the you get to main, it should stabilize (depends on the RTOS). There is not much this extension can do.

pyocd deals with it more elegantly.

If you have not enabled RTOS awareness with OpenOCD/JLink but are still seeing this issue, then we have a different problem.

microwavesafe commented 4 years ago

If you have not enabled RTOS awareness with OpenOCD/JLink but are still seeing this issue, then we have a different problem.

I only have this in my settings. I believe this means I haven't enabled RTOS awareness.

            "cwd": "${workspaceRoot}",
            "device": "STM32F070CB",
            "executable": "${workspaceRoot}/build/bin/output.elf",
            "request": "launch",
            "type": "cortex-debug",
            "showDevDebugOutput": true,
            "servertype": "jlink",
RisinT96 commented 4 years ago

Happens with and without RTOS support enabled.

I only mentioned that when RTOS support is enabled, it also breaks the stack view.

haneefdm commented 4 years ago

Yes, JLink/OpenOCD provides junk stack/thread information (sometimes from the last run or whatever junk there is in SRAM). It only applies when threads are enabled and there is no fix. OpenOCD is especially bad with threads (too many bugs).

I will continue looking. Thanks. The following is a big clue to me...

https://github.com/Marus/cortex-debug/issues/295#issuecomment-631972127

RisinT96 commented 4 years ago

Hi again, Playing around with a simple project, I managed to break the watch window, this is what it look like: image (the little wheel is spinining). Unable to add or remove items in the watch window, nor interact with the expendable sections.

I had no error pop-up at all, don't see anything unusual in the debug console, nor the adapter output.

All it took was to set multiple breakpoints, and step into some functions, I'll try to pinpoint exactly what causes this.

JLink info:

SEGGER J-Link GDB Server V6.72d Command Line Version

JLinkARM.dll V6.72d (DLL compiled May 15 2020 16:47:06)

Command line: -if swd -port 50000 -swoport 50001 -telnetport 50002 -device STM32L476VGTx
-----GDB Server start settings-----
GDBInit file:                  none
GDB Server Listening port:     50000
SWO raw output listening port: 50001
Terminal I/O port:             50002
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:                 STM32L476VGTx
Target interface:              SWD
Target interface speed:        4000kHz
Target endian:                 little

Connecting to J-Link...
J-Link is connected.
Firmware: J-Link STLink V21 compiled Aug 12 2019 10:29:20
Hardware: V1.00
S/N: 772535930
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 50000

Launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "cortex-debug",
            "request": "launch",
            "executable": "${workspaceFolder}/build/rtos-test.elf",
            "servertype": "jlink",
            "interface": "swd",
            "runToMain": true,
            "device": "STM32L476VGTx",
        }
    ]
}

Update: Peforming steps in quick succession brings up the Could not get static variable information: Selected thread is running. (from stack-info-frame --thread 1 --frame 0) error, but it doesn't seem to cause the Variables or Watch view to break.

haneefdm commented 4 years ago

I have seen that spinning thing when the data structure is too large and/or user steps/continues too fast before the GUI has a chance to update after the previous pause. This is something new though.

Yes, the quick succession of commands is a problem. Requests from VSCode to the debugger are getting queued up and they randomly fail because the context has totally changed for old requests. Again, this started with a recent update with VSCode. It doesn't mean we don't have a bug.

I am as frustrated as you all are and I can't even duplicate the problem. But I know it exists.

haneefdm commented 4 years ago

Could you please try the following pre-release

https://github.com/haneefdm/cortex-debug/releases/tag/v0.3.7-pre3

Use the VSIX manual installation method to install the extension

RisinT96 commented 4 years ago

I tried using the new release, at first look it seems to work better than the previous. Haven't yet gotten the chance to simulate the behavior that breaks the watch/variables windows. I'll update next week once I get a chance to really test it.

haneefdm commented 4 years ago

Note: V0.3.7 is released and now in the wild.

microwavesafe commented 4 years ago

I have been using this for a few days and it seems better. Interestingly I still get the occasional

Could not get stack variables: Selected thread is running. (from stack-list-variables --thread 1 --frame 0 --simple-values)

error, but this does not seem to affect the local variable window. It looks promising!

microwavesafe commented 4 years ago

I am seeing again today. It is the same problem as before, the variable in the Local window states , but if I add the same variable to the watch window it display correctly.

sourcebox commented 4 years ago

This issue also happens to me. What I noticed is that after initially starting the debug session, the variables are displayed correctly. Then, after doing some code modifications and pressing the restart button, the session will relaunch, but the variables all show "unknown". Hovering a variable in the source window or adding it to the watch list, will however show its value.

RisinT96 commented 3 years ago

Well, it seems like the issue still persists, sorry for the delay but the patches didn't fix it. Happens more rarely but still happens once in a while.

AndrewCapon commented 2 years ago

Is there any fix for this, it happens all the time here after a restart and randomly after a start after a while.

Basically the Variables window for Locals just doesn't work for me.

Hovering over a variable in the editor displays values perfectly, as well as the p command in the "Debug Console".

Globals work fine always.

Screenshot 2022-03-08 at 17 38 21
haneefdm commented 2 years ago

@AndrewCapon Not sure what release version you are using. I have been unable to truly reproduce this issue. It is unclear to me what steps to follow to reproduce this issue. I don't use JLink that frequently though. What is your setup? Did you customize your restart? Perhaps a copy of your launch.json?

But quite a bit has changed over the last few months. Do you mind trying the latest pre-release? You can enable the pre-release from within VSCode.

image

After you enable/install, it will look like this.

image
AndrewCapon commented 2 years ago

Hi @haneefdm,

Thanks for the reply, unfortunately I am already using the Pre-Release version. So this is the version I am having the problems with.

Sorry, I should have said that before!

The problem for me is the same with Jlink, st-link v2 and st-link v3.

Very easy to replicate here, just run the debugger, hit a breakpoint and everything is fine, restart debugger, hit breakpoint and locals don't work.

OSX Big Sur.

haneefdm commented 2 years ago

Could you enable debug "showDevDebugOutput": "raw" and copy all the text from the Debug Console and attach the file? It may be large. Maybe I can spot something.

I am also using Big Sur and st-link V3

AndrewCapon commented 2 years ago

Thanks very much for your interest and help with this.

So this is after a start, hit breakpoint, restart (build), hit breakpoint and local not working:

29-interpreter-exec console "load"
-> ~"`/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf' has changed; re-reading symbols.\n"
`/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf' has changed; re-reading symbols.
-> ~"Loading section .text, size 0x28450 lma 0x24000000\n"
Loading section .text, size 0x28450 lma 0x24000000
-> 29+download,{section=".text",section-size="164944",total-size="2438981"}
-> 29+download,{section=".text",section-sent="16160",section-size="164944",total-sent="16160",total-size="2438981"}
-> 29+download,{section=".text",section-sent="164944",section-size="164944",total-sent="164944",total-size="2438981"}
-> ~"Loading section .exidx, size 0x8 lma 0x24028450\n"
Loading section .exidx, size 0x8 lma 0x24028450
-> 29+download,{section=".exidx",section-size="8",total-size="2438981"}
-> ~"Loading section .init_array, size 0x2c lma 0x24028458\n"
Loading section .init_array, size 0x2c lma 0x24028458
-> 29+download,{section=".init_array",section-size="44",total-size="2438981"}
-> ~"Loading section .fini_array, size 0x4 lma 0x24028484\n"
Loading section .fini_array, size 0x4 lma 0x24028484
-> 29+download,{section=".fini_array",section-size="4",total-size="2438981"}
-> ~"Loading section .data, size 0xdcc lma 0x24028488\n"
Loading section .data, size 0xdcc lma 0x24028488
-> 29+download,{section=".data",section-size="3532",total-size="2438981"}
-> ~"Loading section .isr_vector, size 0x298 lma 0x8000000\n"
Loading section .isr_vector, size 0x298 lma 0x8000000
-> 29+download,{section=".isr_vector",section-size="664",total-size="2438981"}
-> 29+download,{section=".isr_vector",section-sent="664",section-size="664",total-sent="169196",total-size="2438981"}
-> ~"Start address 0x24000894, load size 169196\n"
Start address 0x24000894, load size 169196
-> ~"Transfer rate: 110 KB/sec, 10574 bytes/write.\n"
Transfer rate: 110 KB/sec, 10574 bytes/write.
-> 29^done
30-interpreter-exec console "enable breakpoint"
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="1",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> =breakpoint-modified,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x24006de8",func="KnobParameter::ResetActualValue(float)",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="105",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:105"}
-> 30^done
31-interpreter-exec console "monitor reset"
-> 31^done
32-interpreter-exec console "monitor reset halt"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000, semihosting\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000, semihosting
-> 32^done
33-exec-continue
-> 33^running
-> *running,thread-id="all"
mi2.status = running
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="2",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> ~"\n"

-> ~"Breakpoint 1, KnobParameter::Process (this=0x2000c7e4 <mainUI+32>) at KnobParameter.cpp:92\n"
Breakpoint 1, KnobParameter::Process (this=0x2000c7e4 <mainUI+32>) at KnobParameter.cpp:92
-> ~"92\t\treturn m_bChanged;\n"
92      return m_bChanged;
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c7e4 <mainUI+32>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
34-thread-list-ids
-> 34^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
35-thread-info 1
-> 35^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c7e4 <mainUI+32>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},state="stopped"}]
36-data-list-register-values N
37-stack-info-depth --thread 1 10000
-> 36^done,register-values=[{number="0",value="536922084"},{number="1",value="0"},{number="2",value="0"},{number="3",value="536922084"},{number="4",value="536922084"},{number="5",value="604148308"},{number="6",value="0"},{number="7",value="537001576"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="-1"},{number="13",value="0x2001fe68"},{number="14",value="604007625"},{number="15",value="0x24006d6e <KnobParameter::Process()+438>"},{number="25",value="1627389952"},{number="58",value="0"},{number="59",value="6755399441055744"},{number="60",value="46.166241308446828"},{number="61",value="0.020723266527056694"},{number="62",value="0.0018735632467748514"},{number="63",value="0.021660849396613134"},{number="64",value="1.1180462351691931e-314"},{number="65",value="0"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="1610612752"},{number="91",value="0x2001fe68"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="0"},{number="98",value="0"},{number="99",value="0"},{number="100",value="184"},{number="101",value="5.06213155e+22"},{number="102",value="3.11067367"},{number="103",value="-3.68934881e+19"},{number="104",value="1.16578603"},{number="105",value="2.44346957e-05"},{number="106",value="0.869908035"},{number="107",value="-1.86522028e+38"},{number="108",value="1.17328668"},{number="109",value="-8.49698113e-35"},{number="110",value="0"},{number="111",value="0"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
-> 37^done,depth="7"
38-stack-list-frames --thread 1 0 6
-> 38^done,stack=[frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},frame={level="1",addr="0x24006bae",func="KnobParameter::Init",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="18",arch="armv7e-m"},frame={level="2",addr="0x2400692a",func="UIPage::InitKnob",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="16",arch="armv7e-m"},frame={level="3",addr="0x240069f6",func="UIPage::InitKnobUseRenderer",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="33",arch="armv7e-m"},frame={level="4",addr="0x24005b6c",func="OscUI::Init",file="OscUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/OscUI.cpp",line="16",arch="armv7e-m"},frame={level="5",addr="0x240075f2",func="MainUI::Init",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="14",arch="armv7e-m"},frame={level="6",addr="0x240031f4",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="86",arch="armv7e-m"}]
39-var-update --thread 1 --frame 0 --all-values watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b
-> 39^error,msg="Variable object not found"
40-var-create watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b @ "m_modSlotsStorage[0]"
-> 40^error,msg="-var-create: unable to create variable object"
watch: -var-create: unable to create variable object (from var-create watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b @ "m_modSlotsStorage[0]")41-stack-list-variables --thread 1 --frame 0 --simple-values
-> 41^done,variables=[{name="this",arg="1",type="KnobParameter * const",value="0x2000c7e4 <mainUI+32>"}]
42-var-update --thread 1 --frame 0 --all-values var_this_256
-> 42^done,changelist=[{name="var_this_256",in_scope="invalid",has_more="0"}]
AndrewCapon commented 2 years ago

If I then try to expand this in the local window I get this:

43-var-list-children --all-values var_this_256
44-break-delete
Could not delete all breakpoints. TypeError: Cannot read property 'stdin' of null
45-target-detach
haneefdm commented 2 years ago

From the output that started at 29-interpreter-exec console "load" to command 41, I don't see anything wrong except for bad watch variable evals. The request for local variables resulted in this with a value 0x2000c7e4 and no other locals. Does the value 0x2000c7e4 look right?

Then I see 42-var-update on gdb variable var_this_256 that mirrors your variable this, but this variable has not been created/assigned. This is normal. It should have failed but it succeeded (-> 42^done) which is rather strange. We let it fail and then we create a gdb-variable. If it succeded then the variable was already created or exists somehow. But when we try to expand 43-var-list-children --all-values var_this_256, it appears gdb has crashed

Could not delete all breakpoints. TypeError: Cannot read property 'stdin' of null

That means gdb has crashed at this point. So the stdin to gdb has been (unexpectedly) closed. It appears that the 43-var-list-children --all-values var_this_256 caused gdb to crash. Notice no result from command 43.

This is a different problem than the problem of having '<unknown>' values. Could you try a newer/different version of gdb? What version are you using?

AndrewCapon commented 2 years ago

Gdb is: GNU gdb (GNU Arm Embedded Toolchain 10.3-2021.10) 10.2.90.20210621-git

Here is the exact same breakpoint when it is working (first run):

Launching GDB: arm-none-eabi-gdb -q --interpreter=mi2 -d "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf"
1-gdb-set target-async on
Reading symbols from arm-none-eabi-objdump --syms -C -h -w /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Reading symbols from arm-none-eabi-nm --defined-only -S -l -C -p /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Launching gdb-server: openocd -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" -f /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.4/support/openocd-helpers.tcl -f interface/stlink.cfg -f target/stm32h7x.cfg -c init -c "reset init" -c "gdb_breakpoint_override hard"
    Please check TERMINAL tab (gdb-server) for output from openocd
-> undefined=thread-group-added,id="i1"
-> ~"Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...\n"
Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...
-> 1^done
2-gdb-version
Reading symbols from objdump: Time: 27 ms
-> ~"GNU gdb (GNU Arm Embedded Toolchain 10.3-2021.10) 10.2.90.20210621-git\n"
-> ~"Copyright (C) 2021 Free Software Foundation, Inc.\n"
-> ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law."
-> ~"\nType \"show copying\" and \"show warranty\" for details.\n"
-> ~"This GDB was configured as \"--host=x86_64-apple-darwin10 --target=arm-none-eabi\".\n"
-> ~"Type \"show configuration\" for configuration details.\n"
-> ~"For bug reporting instructions, please see:\n"
-> ~"<https://www.gnu.org/software/gdb/bugs/>.\n"
-> ~"Find the GDB manual and other documentation resources online at:\n    <http://www.gnu.org/software/gdb/documentation/>."
-> ~"\n\n"
-> ~"For help, type \"help\".\n"
-> ~"Type \"apropos word\" to search for commands related to \"word\".\n"
-> 2^done
3-interpreter-exec console "set print demangle on"
4-interpreter-exec console "set print asm-demangle on"
-> 3^done
-> =cmd-param-changed,param="print asm-demangle",value="on"
-> 4^done
Reading symbols from nm: Time: 52 ms
5-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.4/support/gdbsupport.init"
6-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.4/support/gdb-swo.init"
7-target-select extended-remote localhost:50000
8-interpreter-exec console "monitor reset halt"
9-target-download
10-interpreter-exec console "monitor reset halt"
11-enable-pretty-printing
12-interpreter-exec console "monitor arm semihosting enable"
-> 5^done
-> =cmd-param-changed,param="language",value="c"
-> =cmd-param-changed,param="language",value="auto"
-> 6^done
-> =thread-group-started,id="i1",pid="42000"
-> =thread-created,id="1",group-id="i1"
-> ~"Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1544\n"
Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1544
-> ~"1544\t\tfor (pSource = &_sidata, pDest = &_sdata; pDest != &_edata; pSource++, pDest++)\n"
1544        for (pSource = &_sidata, pDest = &_sdata; pDest != &_edata; pSource++, pDest++)
-> *stopped,frame={addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
Program stopped, probably due to a reset and/or halt issued by debugger
-> 7^connected
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 8^done
-> 9+download,{section=".text",section-size="164944",total-size="2438981"}
-> 9+download,{section=".text",section-sent="16160",section-size="164944",total-sent="16160",total-size="2438981"}
-> 9+download,{section=".text",section-sent="164944",section-size="164944",total-sent="164944",total-size="2438981"}
-> 9+download,{section=".exidx",section-size="8",total-size="2438981"}
-> 9+download,{section=".init_array",section-size="44",total-size="2438981"}
-> 9+download,{section=".fini_array",section-size="4",total-size="2438981"}
-> 9+download,{section=".data",section-size="3532",total-size="2438981"}
-> 9+download,{section=".isr_vector",section-size="664",total-size="2438981"}
-> 9+download,{section=".isr_vector",section-sent="664",section-size="664",total-sent="169196",total-size="2438981"}
-> 9^done,address="0x24000894",load-size="169196",transfer-rate="902376",write-rate="10574"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 10^done
-> 11^done
-> @"semihosting is enabled\n"
semihosting is enabled
-> @"\n"

-> 12^done
13-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"
14-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:105"
-> 13^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> 14^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x24006de8",func="KnobParameter::ResetActualValue(float)",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="105",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:105"}
15-thread-list-ids
-> 15^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
16-thread-info 1
-> 16^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"},state="stopped"}]
17-exec-continue
-> 17^running
-> *running,thread-id="all"
mi2.status = running
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="1",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> ~"\n"

-> ~"Breakpoint 1, KnobParameter::Process (this=0x2000c7e4 <mainUI+32>) at KnobParameter.cpp:92\n"
Breakpoint 1, KnobParameter::Process (this=0x2000c7e4 <mainUI+32>) at KnobParameter.cpp:92
-> ~"92\t\treturn m_bChanged;\n"
92      return m_bChanged;
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c7e4 <mainUI+32>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
18-thread-list-ids
-> 18^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
19-thread-info 1
-> 19^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c7e4 <mainUI+32>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},state="stopped"}]
20-data-list-register-names
-> 20^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","sp","lr","pc","","","","","","","","","","xPSR","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","d10","d11","d12","d13","d14","d15","","","","","","","","","","","","","","","","","fpscr","msp","psp","primask","basepri","faultmask","control","s0","s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","s12","s13","s14","s15","s16","s17","s18","s19","s20","s21","s22","s23","s24","s25","s26","s27","s28","s29","s30","s31"]
21-stack-info-depth --thread 1 10000
22-data-list-register-values N
-> 21^done,depth="7"
23-stack-list-frames --thread 1 0 6
-> 22^done,register-values=[{number="0",value="536922084"},{number="1",value="0"},{number="2",value="0"},{number="3",value="536922084"},{number="4",value="536922084"},{number="5",value="604148308"},{number="6",value="0"},{number="7",value="537001576"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="-1"},{number="13",value="0x2001fe68"},{number="14",value="604007625"},{number="15",value="0x24006d6e <KnobParameter::Process()+438>"},{number="25",value="1627389952"},{number="58",value="0"},{number="59",value="6755399441055744"},{number="60",value="46.166241308446828"},{number="61",value="0.020723266527056694"},{number="62",value="0.0018735632467748514"},{number="63",value="0.021660849396613134"},{number="64",value="1.1180462351691931e-314"},{number="65",value="0"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="1610612752"},{number="91",value="0x2001fe68"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="0"},{number="98",value="0"},{number="99",value="0"},{number="100",value="184"},{number="101",value="5.06213155e+22"},{number="102",value="3.11067367"},{number="103",value="-3.68934881e+19"},{number="104",value="1.16578603"},{number="105",value="2.44346957e-05"},{number="106",value="0.869908035"},{number="107",value="-1.86522028e+38"},{number="108",value="1.17328668"},{number="109",value="-8.49698113e-35"},{number="110",value="0"},{number="111",value="0"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
-> 23^done,stack=[frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},frame={level="1",addr="0x24006bae",func="KnobParameter::Init",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="18",arch="armv7e-m"},frame={level="2",addr="0x2400692a",func="UIPage::InitKnob",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="16",arch="armv7e-m"},frame={level="3",addr="0x240069f6",func="UIPage::InitKnobUseRenderer",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="33",arch="armv7e-m"},frame={level="4",addr="0x24005b6c",func="OscUI::Init",file="OscUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/OscUI.cpp",line="16",arch="armv7e-m"},frame={level="5",addr="0x240075f2",func="MainUI::Init",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="14",arch="armv7e-m"},frame={level="6",addr="0x240031f4",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="86",arch="armv7e-m"}]
24-var-update --thread 1 --frame 0 --all-values watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b
-> 24^error,msg="Variable object not found"
25-var-create watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b @ "m_modSlotsStorage[0]"
-> 25^error,msg="-var-create: unable to create variable object"
watch: -var-create: unable to create variable object (from var-create watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b @ "m_modSlotsStorage[0]")26-stack-list-variables --thread 1 --frame 0 --simple-values
-> 26^done,variables=[{name="this",arg="1",type="KnobParameter * const",value="0x2000c7e4 <mainUI+32>"}]
27-var-update --thread 1 --frame 0 --all-values var_this_256
-> 27^error,msg="Variable object not found"
28-var-create var_this_256 * "this"
-> 28^done,name="var_this_256",numchild="1",value="0x2000c7e4 <mainUI+32>",type="KnobParameter * const",thread-id="1",has_more="0"
AndrewCapon commented 2 years ago

And then a continue to hit the breakpoint again (local window now not working):

29-exec-continue --thread 1
-> 29^running
-> *running,thread-id="all"
mi2.status = running
-> @"halted: PC: 0x24006d70\n"
halted: PC: 0x24006d70
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="2",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> ~"\n"

-> ~"Breakpoint 1, KnobParameter::Process (this=0x2000c810 <mainUI+76>) at KnobParameter.cpp:92\n"
Breakpoint 1, KnobParameter::Process (this=0x2000c810 <mainUI+76>) at KnobParameter.cpp:92
-> ~"92\t\treturn m_bChanged;\n"
92      return m_bChanged;
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c810 <mainUI+76>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
30-thread-list-ids
-> 30^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
31-thread-info 1
-> 31^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c810 <mainUI+76>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},state="stopped"}]
32-data-list-register-values N
33-stack-info-depth --thread 1 10000
-> 32^done,register-values=[{number="0",value="536922128"},{number="1",value="0"},{number="2",value="0"},{number="3",value="536922128"},{number="4",value="536922128"},{number="5",value="604148308"},{number="6",value="0"},{number="7",value="537001544"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="-2139095041"},{number="13",value="0x2001fe48"},{number="14",value="604007625"},{number="15",value="0x24006d6e <KnobParameter::Process()+438>"},{number="25",value="1627389952"},{number="58",value="1000"},{number="59",value="0.0062893564615001119"},{number="60",value="211106232532992"},{number="61",value="-0.0029657153328876973"},{number="62",value="8.7954674357251852e-06"},{number="63",value="0.69314718069162029"},{number="64",value="1.0291255546633603e-314"},{number="65",value="0"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="1610612752"},{number="91",value="0x2001fe48"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="0"},{number="98",value="4.4765625"},{number="99",value="2213.75781"},{number="100",value="0.975629687"},{number="101",value="0"},{number="102",value="116"},{number="103",value="21741568"},{number="104",value="-0.907402873"},{number="105",value="-1.34229782e+14"},{number="106",value="0.44227621"},{number="107",value="-1.86522028e+38"},{number="108",value="1.79828668"},{number="109",value="3.48196239e+36"},{number="110",value="0"},{number="111",value="0"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
-> 33^done,depth="7"
34-stack-list-frames --thread 1 0 6
-> 34^done,stack=[frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},frame={level="1",addr="0x24006bae",func="KnobParameter::Init",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="18",arch="armv7e-m"},frame={level="2",addr="0x2400692a",func="UIPage::InitKnob",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="16",arch="armv7e-m"},frame={level="3",addr="0x2400695e",func="UIPage::InitKnobDefaultRenderer",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="21",arch="armv7e-m"},frame={level="4",addr="0x24005b84",func="OscUI::Init",file="OscUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/OscUI.cpp",line="17",arch="armv7e-m"},frame={level="5",addr="0x240075f2",func="MainUI::Init",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="14",arch="armv7e-m"},frame={level="6",addr="0x240031f4",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="86",arch="armv7e-m"}]
35-var-update --thread 1 --frame 0 --all-values watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b
-> 35^error,msg="Variable object not found"
36-var-create watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b @ "m_modSlotsStorage[0]"
-> 36^error,msg="-var-create: unable to create variable object"
watch: -var-create: unable to create variable object (from var-create watch_2527785aec91c116b56d99c12d975602dda5f351735d1cf7bf2b0323ae0f173b @ "m_modSlotsStorage[0]")37-stack-list-variables --thread 1 --frame 0 --simple-values
-> 37^done,variables=[{name="this",arg="1",type="KnobParameter * const",value="0x2000c810 <mainUI+76>"}]
38-var-update --thread 1 --frame 0 --all-values var_this_256
-> 38^done,changelist=[{name="var_this_256",in_scope="false",type_changed="false",has_more="0"}]
haneefdm commented 2 years ago

Now that I see the entire session, I see that 28-var-create var_this_256 * "this" was done already and rest of the session also makes sense. Now we are down to why gdb is crashing. Time to try a new/different version of gdb for you and me trying to use the same version as what you have -- 10.3-2021.10

Following is after seeing your latest post:

From the last post of yours, I see commands 29-38, and nothing seems amiss. We responded to VSCode with a new list of threads, frames, and variables just like the first time. What do you see in the Locals Window (you said "local window now not working" but I can't tell what that means. A screengrab of the area perhaps?

Btw, you did a "load" between the start and the restart? I don't think that came from the extension. May I ask why?

AndrewCapon commented 2 years ago

Hi there,

For the start/restart load this is how the build system for this Daisy board is working, it does a build when you restart.

The problem is there without this though, basically for me the locals windows works only once, after hitting the first breakpoint. From that point on it doesn't work and displays <unknown>. This is without a restart, just using continue and hitting the breakpoint again.

I will try a different gdb today...

Here are two screen shots, this is just starting the debugger and hitting the breakpoint, then the second image is after continuing and hitting the breakpoint again:

  1. Initial run debugger, hit breakpoint:
Screenshot 2022-03-09 at 06 22 10
  1. Continue and hit breakpoint again:
Screenshot 2022-03-09 at 06 22 41

Now the complete log for the same thing but without the globals being open to make it easier to read. Also at the point that I am getting <unknown> I did a p *this to show gdb is still fine and working:

This is basically how I have been working with this, just displaying the variables using the p command, as long as I do this everything works and I can debug as normal. As long as I do not try to expand the unknown variables in the variables windows, if I do this is when it bombs out.

Launching GDB: arm-none-eabi-gdb -q --interpreter=mi2 -d "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf"
1-gdb-set target-async on
Reading symbols from arm-none-eabi-objdump --syms -C -h -w /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Reading symbols from arm-none-eabi-nm --defined-only -S -l -C -p /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Launching gdb-server: openocd -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" -f /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.4/support/openocd-helpers.tcl -f interface/stlink.cfg -f target/stm32h7x.cfg -c init -c "reset init" -c "gdb_breakpoint_override hard"
    Please check TERMINAL tab (gdb-server) for output from openocd
-> undefined=thread-group-added,id="i1"
-> ~"Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...\n"
Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...
-> 1^done
2-gdb-version
Reading symbols from objdump: Time: 27 ms
-> ~"GNU gdb (GNU Arm Embedded Toolchain 10.3-2021.10) 10.2.90.20210621-git\n"
-> ~"Copyright (C) 2021 Free Software Foundation, Inc.\n"
-> ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law."
-> ~"\nType \"show copying\" and \"show warranty\" for details.\n"
-> ~"This GDB was configured as \"--host=x86_64-apple-darwin10 --target=arm-none-eabi\".\n"
-> ~"Type \"show configuration\" for configuration details.\n"
-> ~"For bug reporting instructions, please see:\n"
-> ~"<https://www.gnu.org/software/gdb/bugs/>.\n"
-> ~"Find the GDB manual and other documentation resources online at:\n    <http://www.gnu.org/software/gdb/documentation/>."
-> ~"\n\n"
-> ~"For help, type \"help\".\n"
-> ~"Type \"apropos word\" to search for commands related to \"word\".\n"
-> 2^done
3-interpreter-exec console "set print demangle on"
4-interpreter-exec console "set print asm-demangle on"
-> 3^done
-> =cmd-param-changed,param="print asm-demangle",value="on"
-> 4^done
Reading symbols from nm: Time: 52 ms
5-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.4/support/gdbsupport.init"
6-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.4/support/gdb-swo.init"
7-target-select extended-remote localhost:50000
8-interpreter-exec console "monitor reset halt"
9-target-download
10-interpreter-exec console "monitor reset halt"
11-enable-pretty-printing
12-interpreter-exec console "monitor arm semihosting enable"
-> 5^done
-> =cmd-param-changed,param="language",value="c"
-> =cmd-param-changed,param="language",value="auto"
-> 6^done
-> =thread-group-started,id="i1",pid="42000"
-> =thread-created,id="1",group-id="i1"
-> ~"Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1544\n"
Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1544
-> ~"1544\t\tfor (pSource = &_sidata, pDest = &_sdata; pDest != &_edata; pSource++, pDest++)\n"
1544        for (pSource = &_sidata, pDest = &_sdata; pDest != &_edata; pSource++, pDest++)
-> *stopped,frame={addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
Program stopped, probably due to a reset and/or halt issued by debugger
-> 7^connected
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 8^done
-> 9+download,{section=".text",section-size="164944",total-size="2438981"}
-> 9+download,{section=".text",section-sent="16160",section-size="164944",total-sent="16160",total-size="2438981"}
-> 9+download,{section=".text",section-sent="164944",section-size="164944",total-sent="164944",total-size="2438981"}
-> 9+download,{section=".exidx",section-size="8",total-size="2438981"}
-> 9+download,{section=".init_array",section-size="44",total-size="2438981"}
-> 9+download,{section=".fini_array",section-size="4",total-size="2438981"}
-> 9+download,{section=".data",section-size="3532",total-size="2438981"}
-> 9+download,{section=".isr_vector",section-size="664",total-size="2438981"}
-> 9+download,{section=".isr_vector",section-sent="664",section-size="664",total-sent="169196",total-size="2438981"}
-> 9^done,address="0x24000894",load-size="169196",transfer-rate="904184",write-rate="10574"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 10^done
-> 11^done
-> @"semihosting is enabled\n"
semihosting is enabled
-> @"\n"

-> 12^done
13-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"
14-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:105"
-> 13^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> 14^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x24006de8",func="KnobParameter::ResetActualValue(float)",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="105",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:105"}
15-thread-list-ids
-> 15^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
16-thread-info 1
-> 16^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"},state="stopped"}]
17-exec-continue
-> 17^running
-> *running,thread-id="all"
mi2.status = running
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="1",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> ~"\n"

-> ~"Breakpoint 1, KnobParameter::Process (this=0x2000c7e4 <mainUI+32>) at KnobParameter.cpp:92\n"
Breakpoint 1, KnobParameter::Process (this=0x2000c7e4 <mainUI+32>) at KnobParameter.cpp:92
-> ~"92\t\treturn m_bChanged;\n"
92      return m_bChanged;
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c7e4 <mainUI+32>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
18-thread-list-ids
-> 18^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
19-thread-info 1
-> 19^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c7e4 <mainUI+32>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},state="stopped"}]
20-data-list-register-names
-> 20^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","sp","lr","pc","","","","","","","","","","xPSR","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","d10","d11","d12","d13","d14","d15","","","","","","","","","","","","","","","","","fpscr","msp","psp","primask","basepri","faultmask","control","s0","s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","s12","s13","s14","s15","s16","s17","s18","s19","s20","s21","s22","s23","s24","s25","s26","s27","s28","s29","s30","s31"]
21-stack-info-depth --thread 1 10000
22-data-list-register-values N
-> 21^done,depth="7"
23-stack-list-frames --thread 1 0 6
-> 22^done,register-values=[{number="0",value="536922084"},{number="1",value="1072933948"},{number="2",value="0"},{number="3",value="0"},{number="4",value="536922084"},{number="5",value="604148308"},{number="6",value="0"},{number="7",value="537001576"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="-1"},{number="13",value="0x2001fe68"},{number="14",value="604007625"},{number="15",value="0x24006d6e <KnobParameter::Process()+438>"},{number="25",value="-2130706432"},{number="58",value="5.1806537865363094e-315"},{number="59",value="6755399441055744"},{number="60",value="46.166241308446828"},{number="61",value="0.020723266527056694"},{number="62",value="0.0018735632467748514"},{number="63",value="0.021660849396613134"},{number="64",value="2.0000010049520207"},{number="65",value="5.3049894774131808e-315"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="536870928"},{number="91",value="0x2001fe68"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="0.25"},{number="98",value="0"},{number="99",value="0"},{number="100",value="184"},{number="101",value="5.06213155e+22"},{number="102",value="3.11067367"},{number="103",value="-3.68934881e+19"},{number="104",value="1.16578603"},{number="105",value="2.44346957e-05"},{number="106",value="0.869908035"},{number="107",value="-1.86522028e+38"},{number="108",value="1.17328668"},{number="109",value="-8.49698113e-35"},{number="110",value="2"},{number="111",value="2"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
-> 23^done,stack=[frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},frame={level="1",addr="0x24006bae",func="KnobParameter::Init",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="18",arch="armv7e-m"},frame={level="2",addr="0x2400692a",func="UIPage::InitKnob",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="16",arch="armv7e-m"},frame={level="3",addr="0x240069f6",func="UIPage::InitKnobUseRenderer",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="33",arch="armv7e-m"},frame={level="4",addr="0x24005b6c",func="OscUI::Init",file="OscUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/OscUI.cpp",line="16",arch="armv7e-m"},frame={level="5",addr="0x240075f2",func="MainUI::Init",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="14",arch="armv7e-m"},frame={level="6",addr="0x240031f4",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="86",arch="armv7e-m"}]
24-stack-list-variables --thread 1 --frame 0 --simple-values
-> 24^done,variables=[{name="this",arg="1",type="KnobParameter * const",value="0x2000c7e4 <mainUI+32>"}]
25-var-update --thread 1 --frame 0 --all-values var_this_256
-> 25^error,msg="Variable object not found"
26-var-create var_this_256 * "this"
-> 26^done,name="var_this_256",numchild="1",value="0x2000c7e4 <mainUI+32>",type="KnobParameter * const",thread-id="1",has_more="0"
27-exec-continue --thread 1
-> 27^running
-> *running,thread-id="all"
mi2.status = running
-> @"halted: PC: 0x24006d70\n"
halted: PC: 0x24006d70
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006d6e",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="2",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> ~"\n"

-> ~"Breakpoint 1, KnobParameter::Process (this=0x2000c810 <mainUI+76>) at KnobParameter.cpp:92\n"
Breakpoint 1, KnobParameter::Process (this=0x2000c810 <mainUI+76>) at KnobParameter.cpp:92
-> ~"92\t\treturn m_bChanged;\n"
92      return m_bChanged;
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c810 <mainUI+76>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
28-thread-list-ids
-> 28^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
29-thread-info 1
-> 29^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c810 <mainUI+76>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},state="stopped"}]
30-data-list-register-values N
31-stack-info-depth --thread 1 10000
-> 30^done,register-values=[{number="0",value="536922128"},{number="1",value="1132751509"},{number="2",value="8"},{number="3",value="0"},{number="4",value="536922128"},{number="5",value="604148308"},{number="6",value="0"},{number="7",value="537001544"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="-2139095041"},{number="13",value="0x2001fe48"},{number="14",value="604007625"},{number="15",value="0x24006d6e <KnobParameter::Process()+438>"},{number="25",value="-2130706432"},{number="58",value="1000.00011926651"},{number="59",value="0.0062893564615001119"},{number="60",value="211106232532992"},{number="61",value="-0.0029657153328876973"},{number="62",value="8.7954674357251852e-06"},{number="63",value="0.69314718069162029"},{number="64",value="1.7642974910131863e-07"},{number="65",value="5.1831404979823317e-315"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="536870928"},{number="91",value="0x2001fe48"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="0.264999986"},{number="98",value="4.4765625"},{number="99",value="2213.75781"},{number="100",value="0.975629687"},{number="101",value="0"},{number="102",value="116"},{number="103",value="21741568"},{number="104",value="-0.907402873"},{number="105",value="-1.34229782e+14"},{number="106",value="0.44227621"},{number="107",value="-1.86522028e+38"},{number="108",value="1.79828668"},{number="109",value="3.48196239e+36"},{number="110",value="0.264999986"},{number="111",value="0.264999986"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
-> 31^done,depth="7"
32-stack-list-frames --thread 1 0 6
-> 32^done,stack=[frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"},frame={level="1",addr="0x24006bae",func="KnobParameter::Init",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="18",arch="armv7e-m"},frame={level="2",addr="0x2400692a",func="UIPage::InitKnob",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="16",arch="armv7e-m"},frame={level="3",addr="0x2400695e",func="UIPage::InitKnobDefaultRenderer",file="UIPage.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp",line="21",arch="armv7e-m"},frame={level="4",addr="0x24005b84",func="OscUI::Init",file="OscUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/OscUI.cpp",line="17",arch="armv7e-m"},frame={level="5",addr="0x240075f2",func="MainUI::Init",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="14",arch="armv7e-m"},frame={level="6",addr="0x240031f4",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="86",arch="armv7e-m"}]
33-stack-list-variables --thread 1 --frame 0 --simple-values
-> 33^done,variables=[{name="this",arg="1",type="KnobParameter * const",value="0x2000c810 <mainUI+76>"}]
34-var-update --thread 1 --frame 0 --all-values var_this_256
-> 34^done,changelist=[{name="var_this_256",in_scope="false",type_changed="false",has_more="0"}]
p *this
35-thread-select 1
36-stack-select-frame 0
37-interpreter-exec console "p *this"
-> 35^done,new-thread-id="1",frame={level="0",addr="0x24006d6e",func="KnobParameter::Process",args=[{name="this",value="0x2000c810 <mainUI+76>"}],file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",arch="armv7e-m"}
-> 36^done
-> ~"$1 = {m_pKnob = 0x20001734 <hw+1708>, m_fMin = 0, m_fMax = 1, m_fRange = 1, m_fValue = 0, m_fKnobValue = 0.264999986, m_uPresision = 3, m_bChanged = false, m_sName = 0x2401eeec \" PW \", m_bEnabled = true, m_passthruDirection = KnobParameter::ptLower, m_fDistance = -0.264999986}\n"
$1 = {m_pKnob = 0x20001734 <hw+1708>, m_fMin = 0, m_fMax = 1, m_fRange = 1, m_fValue = 0, m_fKnobValue = 0.264999986, m_uPresision = 3, m_bChanged = false, m_sName = 0x2401eeec " PW ", m_bEnabled = true, m_passthruDirection = KnobParameter::ptLower, m_fDistance = -0.264999986}
-> 37^done
{"token":37,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[]}}
38-stack-list-variables --thread 1 --frame 0 --simple-values
-> 38^done,variables=[{name="this",arg="1",type="KnobParameter * const",value="0x2000c810 <mainUI+76>"}]
39-var-update --thread 1 --frame 0 --all-values var_this_256
-> 39^done,changelist=[]
AndrewCapon commented 2 years ago

I tried GNU gdb (GNU Arm Embedded Toolchain 10.3-2021.10) 10.2.90.20210621-git exactly the same problem.

with GNU gdb (GNU Toolchain for the Arm Architecture 11.2-2022.02 (arm-11.14)) 11.2.90.20220202-git the breakpoint is never hit! Openocd version is Open On-Chip Debugger 0.11.0+dev-00562-g5ab74bde0 (2022-02-13-15:49)

Launching GDB: arm-none-eabi-gdb -q --interpreter=mi2 -d "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf"
1-gdb-set target-async on
-> undefined=thread-group-added,id="i1"
-> ~"Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...\n"
Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...
-> ~"Warning: 'set target-async', an alias for the command 'set mi-async', is deprecated.\n"
Warning: 'set target-async', an alias for the command 'set mi-async', is deprecated.
-> ~"Use 'set mi-async'.\n\n"
Use 'set mi-async'.
-> 1^done
2-gdb-version
-> ~"GNU gdb (GNU Toolchain for the Arm Architecture 11.2-2022.02 (arm-11.14)) 11.2.90.20220202-git\n"
-> ~"Copyright (C) 2022 Free Software Foundation, Inc.\n"
-> ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law."
-> ~"\nType \"show copying\" and \"show warranty\" for details.\n"
-> ~"This GDB was configured as \"--host=x86_64-apple-darwin19.6.0 --target=arm-none-eabi\".\n"
-> ~"Type \"show configuration\" for configuration details.\n"
-> ~"For bug reporting instructions, please see:\n"
-> ~"<https://bugs.linaro.org/>.\n"
-> ~"Find the GDB manual and other documentation resources online at:\n    <http://www.gnu.org/software/gdb/documentation/>."
-> ~"\n\n"
-> ~"For help, type \"help\".\n"
-> ~"Type \"apropos word\" to search for commands related to \"word\".\n"
-> 2^done
3-interpreter-exec console "set print demangle on"
4-interpreter-exec console "set print asm-demangle on"
-> 3^done
-> =cmd-param-changed,param="print asm-demangle",value="on"
-> 4^done
Reading symbols from '/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf'
5-interpreter-exec console "info sources"
Launching gdb-server: openocd -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" -f /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.2.2/support/openocd-helpers.tcl -f interface/stlink.cfg -f target/stm32h7x.cfg -c init -c "reset init" -c "gdb_breakpoint_override hard"
Please check TERMINAL tab (gdb-server) for output from openocd
-> ~"/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf:\n"
-> ~"(Full debug information has not yet been read for this file.)\n"
-> ~"\n"
-> ~"/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/_exit.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/write.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/sbrk.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/read.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/lseek.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/kill.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/isatty.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/getpid.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/fstat.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/libgloss/libnosys/close.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libgcc/config/arm/lib1funcs.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-eabi/obj/gcc2/arm-none-eabi/thumb/v7e-m+dp/hard/libgcc/lib1funcs.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libgcc/libgcc2.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libgcc/config/arm/bpabi.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-eabi/obj/gcc2/arm-none-eabi/thumb/v7e-m+dp/hard/libgcc/bpabi.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libgcc/config/arm/ieee754-df.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-eabi/obj/gcc2/arm-none-eabi/thumb/v7e-m+dp/hard/libgcc/ieee754-df.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/nano-mallocr.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/isattyr.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/fstatr.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/readr.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/string/memmove.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/machine/arm/memchr.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-eabi/obj/newlib-nano/arm-none-eabi/thumb/v7e-m+dp/hard/newlib/libc/machine/arm/memchr.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/makebuf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/lseekr.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/fflush.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/closer.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/wsetup.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/wbuf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/stdio.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/reent.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/include/stdio.h, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/putc.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/nano-vfprintf_i.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/nano-vfprintf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/mlock.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/fwalk.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/fprintf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/include/sys/reent.h, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/findfp.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/assert.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/writer.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/vsnprintf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/syscalls/syswrite.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/machine/arm/strcmp-arm-tiny.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-arm-none-eabi/obj/newlib-nano/arm-none-eabi/thumb/v7e-m+dp/hard/newlib/libc/machine/arm/strcmp-arm-tiny.S, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/sprintf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/signalr.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/signal/signal.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/sbrkr.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/rand.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/putchar.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdio/printf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/string/memset.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/machine/arm/../../string/memcpy.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/machine/arm/memcpy-stub.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/malloc.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/misc/init.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/impure.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/errno/errno.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/cxa_atexit.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/calloc.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/stdlib/abort.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sincosf.h, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/math_config.h, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sinf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sincosf_data.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/machine/arm/../../common/sf_round.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/machine/arm/sf_round.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_pow_log2_data.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_pow.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_log_data.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_log.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_fpclassify.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_fmax.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_exp2_data.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/sf_exp.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/math_errf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libm/common/cosf.c, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/new_handler.cc, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/del_op.cc, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/typeinfo, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/tinfo.cc, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/tinfo.h, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/si_class_type_info.cc, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/new_op.cc, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/del_ops.cc, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/class_type_info.cc, /Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/libstdc++-v3/libsupc++/atexit_arm.cc, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_mdma.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/CMSIS/Include/cmsis_gcc.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/CMSIS/Include/core_cm7.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/sys/dma.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/tim.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/rng.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_pipes.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_core.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_fmc.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sdram.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sai.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rcc.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_qspi.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hcd.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dac_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dac.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_ll_adc.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc_ex.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/util/oled_fonts.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/util/hal_map.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/usbh/usbh_conf.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/usbd/usbd_desc.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/usbd/usbd_conf.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/usbd/usbd_cdc_if.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/sys/system_stm32h7xx.c, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/sys/system.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/tim.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/sys/system.cpp, /Applications/ARM/arm-none-eabi/include/c++/11.2.1/bits/stl_algobase.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/daisy_core.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/util/ringbuffer.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/uart.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/util/scopedirqblocker.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/spi.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/sai.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/qspi.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/i2c.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/i2c.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/gpio.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/dac.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/adc.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/usb.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/usb_midi.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/usb.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/switch.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/logger_impl.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/logger.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/logger.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/gatein.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/ctrl.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/per/sai.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/audio.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/dev/sdram.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/dev/codec_wm8731.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/dev/codec_ak4556.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/dev/codec_wm8731.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/daisy_seed.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/ctrl.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/midi.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/hid/disp/oled_display.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/dev/oled_ssd130x.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/dev/sr_4021.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/dev/leddriver.h, /Volumes/Crucial X8 2TB/Development/daisy/libDaisy/src/daisy_field.cpp, /Applications/ARM/arm-none-eabi/include/c++/11.2.1/arm-none-eabi/thumb/v7e-m+dp/hard/bits/gthr-default.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/ModulationSetup.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/disp/display.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIRenderer.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIListRenderer.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/ModulationSetup.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/ModulationUI.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMOscSetup.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/LfoUI.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoice.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/AdsrEnv.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/AdsrSetup.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMOsc.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/daisy_field.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/Setup.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/Setup.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIRenderer.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/UIPage.cpp, /Applications/ARM/arm-none-eabi/include/c++/11.2.1/cmath, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/OscUI.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMOsc.cpp, /Volumes/Crucial X8 2TB/Development/daisy/DaisySP/Source/Utility/dsp.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.cpp, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoice.cpp, /Applications/ARM/arm-none-eabi/include/c++/11.2.1/array, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/ModulationUI.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/LfoUI.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/OscUI.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/daisy_seed.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/sys/fatfs.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/util/CpuLoadMeter.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/disp/graphics_common.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/per/spi.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/per/sdmmc.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/gatein.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/switch.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/usb_midi.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/MidiEvent.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/per/uart.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/per/adc.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/audio.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/per/dac.h, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/per/qspi.h, /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c, /Volumes/Crucial X8 2TB/Development/daisy/libdaisy/Drivers/CMSIS/DSP/Source/FastMathFunctions/arm_sin_f32.c\n\n"
-> 5^done
Finished reading symbols
6-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.2.2/support/gdbsupport.init"
7-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.2.2/support/gdb-swo.init"
8-target-select extended-remote localhost:50000
9-interpreter-exec console "monitor reset halt"
10-target-download
11-interpreter-exec console "monitor reset halt"
12-enable-pretty-printing
13-interpreter-exec console "monitor arm semihosting enable"
-> 6^done
-> =cmd-param-changed,param="language",value="c"
-> =cmd-param-changed,param="language",value="auto"
-> 7^done
-> &"warning: Can not parse XML target description; XML support was disabled at compile time\n"
warning: Can not parse XML target description; XML support was disabled at compile time
-> =thread-group-started,id="i1",pid="42000"
-> =thread-created,id="1",group-id="i1"
-> &"warning: Can not parse XML memory map; XML support was disabled at compile time\n"
warning: Can not parse XML memory map; XML support was disabled at compile time
-> ~"daisy::MidiUartTransport::~MidiUartTransport (this=0xfffffffe, __in_chrg=<optimized out>) at ../libdaisy//src/hid/midi.h:26\n"
daisy::MidiUartTransport::~MidiUartTransport (this=0xfffffffe, __in_chrg=<optimized out>) at ../libdaisy//src/hid/midi.h:26
-> ~"26\t    ~MidiUartTransport() {}\n"
26      ~MidiUartTransport() {}
-> *stopped,frame={addr="0x24000894",func="daisy::MidiUartTransport::~MidiUartTransport",args=[{name="this",value="0xfffffffe"},{name="__in_chrg",value="<optimized out>"}],file="../libdaisy//src/hid/midi.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/src/hid/midi.h",line="26",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
Program stopped, probably due to a reset and/or halt issued by debugger
-> 8^connected
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 9^done
-> 10+download,{section=".isr_vector",section-size="664",total-size="2492551"}
-> 10+download,{section=".isr_vector",section-sent="664",section-size="664",total-sent="664",total-size="2492551"}
-> 10+download,{section=".text",section-size="161356",total-size="2492551"}
-> 10+download,{section=".text",section-sent="161356",section-size="161356",total-sent="162020",total-size="2492551"}
-> 10+download,{section=".exidx",section-size="8",total-size="2492551"}
-> 10+download,{section=".init_array",section-size="44",total-size="2492551"}
-> 10+download,{section=".fini_array",section-size="4",total-size="2492551"}
-> 10+download,{section=".data",section-size="3528",total-size="2492551"}
-> 10^done,address="0x24000610",load-size="165604",transfer-rate="2582512",write-rate="10350"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 11^done
-> 12^done
-> @"semihosting is enabled\n"
semihosting is enabled
-> @"\n"

-> 13^done
14-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"
15-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:105"
-> 14^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24006afe",func="KnobParameter::Process()",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="92",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:92"}
-> 15^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="0x24006b78",func="KnobParameter::ResetActualValue(float)",file="KnobParameter.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp",line="105",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/KnobParameter.cpp:105"}
16-thread-list-ids
-> 16^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
17-thread-info 1
-> 17^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24000610",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"},state="stopped"}]
18-thread-list-ids
19-stack-info-depth --thread 1 10000
-> 18^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
20-thread-info 1
-> 19^done,depth="1"
21-stack-list-frames --thread 1 0 0
-> 20^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24000610",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"},state="stopped"}]
-> 21^done,stack=[frame={level="0",addr="0x24000610",func="Reset_Handler",file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"}]
22-data-list-register-names
-> 22^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","sp","lr","pc","","","","","","","","","","xpsr","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]
23-stack-info-depth --thread 1 10000
-> 23^done,depth="1"
24-stack-list-frames --thread 1 0 0
-> 24^done,stack=[frame={level="0",addr="0x24000610",func="Reset_Handler",file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"}]
25-stack-info-depth --thread 1 10000
-> 25^done,depth="1"
26-stack-list-frames --thread 1 0 0
-> 26^done,stack=[frame={level="0",addr="0x24000610",func="Reset_Handler",file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"}]
27-data-list-register-values N
-> 27^done,register-values=[{number="0",value="0"},{number="1",value="0"},{number="2",value="0"},{number="3",value="0"},{number="4",value="0"},{number="5",value="0"},{number="6",value="0"},{number="7",value="0"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="0"},{number="13",value="0x20020000"},{number="14",value="-1"},{number="15",value="0x24000610 <Reset_Handler>"},{number="25",value="16777216"}]
28-thread-list-ids
-> 28^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
29-thread-info 1
-> 29^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24000610",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1544",arch="armv7e-m"},state="stopped"}]
30-exec-continue
-> 30^running
-> *running,thread-id="all"
mi2.status = running
AndrewCapon commented 2 years ago

I have just tested 11.2 from the console with my openocd and that doesn't work there either, so nothing to do with cortex-debug.

Edit:

It does work, I had --interpreter=mi2 on the command line, if I remove that then 11.2 is working fine from the command line.

Edit2:

The 11.2 issue seems to be a build problem, I will talk to the Daisy people about that...

haneefdm commented 2 years ago

Ummmm. I am confused as to what works and what doesn't. Note that we are stuck with --interpreter=mi2. Can't go backward or forwards (mi3) because gdb guarantees to break compatibility and many of our users are still stuck with older versions.

I do see a problem in the traces you supplied and it may not be cortex-debug but a serious issue regardless

34-var-update --thread 1 --frame 0 --all-values var_this_256
-> 34^done,changelist=[{name="var_this_256",in_scope="false",type_changed="false",has_more="0"}]

What the above says (due to in_scope="false") that The variable object does not currently hold a valid value but it may hold one in the future if its associated expression comes back into scope.. In this case the associated expression is this. But it knows the value changed (because it is in the change list) but does not supply a new value (although I can see it when variables were listed). The PC is probably mid-scope change. This I think is a lie from gdb. If the variable this had a value at the same spot once before, it should have it again given the frame addresses are still same.

I have a couple of experiments queued up but since I cannot see the problem, I cannot test it either.

AndrewCapon commented 2 years ago

Thanks.

Concerning what does work and what doesn't work here:

The first time you hit a breakpoint the locals window works.

When you continue and hit another breakpoint the locals window stops working displaying <unknown>

So basically it only works once.

I have tested with 10.2 and 10.3.

I cannot test with 11.2.

AndrewCapon commented 2 years ago

I did think it may be something to do with hardware breakpoints in ram for a while but I think that is a red herring.

I have tested with 10.3, openocd and eclipse and everything is working fine there.

haneefdm commented 2 years ago

Yes, it is a problem perhaps in the way cortex-debug is using gdb, but I can tell that gdb is definitely lying to us. Supposed to work and does work 99% of the time. Or else we would have never made a release. Not sure what is unique about your memory layout or elf file.

Since we cannot fix gdb, we have to find a workaround. This won't be the first time. Again, since I can't duplicate it, I can take a shot in the dark and have you try out a fix...if you are up to it. Testing to make sure I did not break something else.

AndrewCapon commented 2 years ago

Thanks very much, I would be happy to test.

Currently I have code executing from sram, I will do a little test to see if that may be the issue, will be different code as this stuff won't fit in the flash...

I can build cortex-debug here as well and maybe try to debug that, I would be stumbling around in the dark though :)

AndrewCapon commented 2 years ago

Ok, getting the same issue with flash.

So I set it all up on a linux VM.

Using GNU gdb (GNU Arm Embedded Toolchain 10.3-2021.10) 10.2.90.20210621-git and xPack OpenOCD x86_64 Open On-Chip Debugger 0.11.0+dev (2021-12-07-17:30)

Everything works absolutely fine, no issues at all.

The OpenOCD I am using on the Mac is a different build 0.11.0+dev-00562-g5ab74bde0 (2022-02-13-15:49)

I'll see if I can get that xPack one running on the Mac...

AndrewCapon commented 2 years ago

Right, it seems it was the OpenOCD causing the problems.

Using xPack OpenOCD x86_64 Open On-Chip Debugger 0.11.0+dev (2021-12-07-19:33) on the Mac and everything works fine unless I do a Restart and then I still get the problem, I can live with that though.

So I'm guessing if you want to test the issue then use 0.11.0+dev-00562-g5ab74bde0 (2022-02-13-15:49), this was installed by brew.

haneefdm commented 2 years ago

Ohhh. With OpenOCD, I don't trust anything that appears with homebrew or xPack. I use two different chip vendors and both ship their own versions of OpenOCD. The ST version is pretty close to what OpenOCD releases, but more recent device/board support, tested, and supported. These custom versions contain changes that are not available in any public version. For other chips, I build from the HEAD.

But other than getting the registers and reading memory, I am not sure how a version of OpenOCD affects this. OpenOCD knows nothing of your executable, how to interpret the stack, etc. It is all done by gdb using the PC/SP/LR registers. OpenOCD does handle breakpoints though.

AndrewCapon commented 2 years ago

Hi,

I changed it to use the version from STM32CubeIde and that also works perfectly.

Concerning the issue still being there with a restart, I changed the Daisy supplied launch.json to just do a build rather than a build all and now everything works on a restart unless I change some code and then restart. Should this work:

      "preLaunchTask": "build",
      "preRestartCommands": [
        "load",
        "enable breakpoint",
        "monitor reset"
      ],
haneefdm commented 2 years ago

Since we do a reset as well, did you try removing the "monitor reset"? Otherwise, there will be back-to-back resets. Also, your reset may not be a good one because that one will cause not just a reset but also a run which is super bad and it may hit un-intentional breakpoints, execute unwanted code, etc. Generally we don't use that at all in a debug session as we don't have any control over it and gdb is now confused because the program is running and it doesn't know about that.

Come to think of it, what you may need is the following

      "preRestartCommands": [
        "monitor reset halt"   // May not need this but is safer. Remove if it is affecting the flow.
        "load"
      ],

the above will reset and halt at the reset handler and then perform a "load". Cortex-Debug will issue a "monitor reset halt" and from that point on, it is good to go.

AndrewCapon commented 2 years ago

Hi,

Thanks for the info, I made these changes and still have <unknown> after a restart with code changes.

I'm not so bothered about this as everything is working correctly when starting from scratch now.

Thanks very much for all your help and time on this, it is really appreciated.

Cheers

Andy

haneefdm commented 2 years ago

@AndrewCapon Could you please try out this release. It has to be installed manually using the Install from VSIX... command

https://github.com/Marus/cortex-debug/releases/tag/v1.3.5-pre2

AndrewCapon commented 2 years ago

Hi @haneefdm,

Tried it out, still the same problem with restart/build.

Also I have been having the same <unknown> problem in this and the pre-release version in code in IRQ handlers, or at least in the DMA one. Non IRQ code seems to work fine though, apart from the restart issue and some rare occurrences of <unknown>.

haneefdm commented 2 years ago

I don't know about the IRQ thing because in ARM, IRQ's use a different stack pointer ut SP should still be the current SP (MSP vs PSP) based of SPSEL. Not up to me but up to OpenOCD and GDB on how they handle ISRs. Technically, ISRs should create a separate thread of execution. It does not surprise that is does not work (bugs, but most likely not ours).

Back to non-isr. Temporarily, if you totally remove the preRestartCommands, what happens?. Also what happens to if you single step after the breakpoint?

AndrewCapon commented 2 years ago

Without the preRestartCommands everything is fine on restart, single stepping after breakpoint is always fine. Basically all the debugging has always worked perfectly apart from the Variables window.

haneefdm commented 2 years ago

Ohhh... really. So, this is gdb doing things that I did not expect either. Makes no sense.

Can you send me the entire debug log -- from the start of the session to restart and then seeing ?

AndrewCapon commented 2 years ago

so start debug, variables window working:

Reading symbols from arm-none-eabi-objdump --syms -C -h -w /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Reading symbols from arm-none-eabi-nm --defined-only -S -l -C -p /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Launching GDB: arm-none-eabi-gdb -q --interpreter=mi2 -d "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf"
1-gdb-set target-async on
Launching gdb-server: openocd -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" -s /Users/andrewcapon/Development/openocd/scripts -f /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.5-pre2/support/openocd-helpers.tcl -f interface/stlink.cfg -f target/stm32h7x.cfg -c init -c "reset init" -c "gdb_breakpoint_override hard"
    Please check TERMINAL tab (gdb-server) for output from openocd
-> =thread-group-added,id="i1"
-> ~"Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...\n"
Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...
Finished reading symbols from objdump: Time: 31 ms
-> 1^done
Suppressing output for '2-gdb-version'
3-interpreter-exec console "set print demangle on"
4-interpreter-exec console "set print asm-demangle on"
-> 3^done
-> =cmd-param-changed,param="print asm-demangle",value="on"
-> 4^done
Suppressing output for '5-symbol-info-variables'
Finished reading symbols from nm: Time: 57 ms
6-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.5-pre2/support/gdbsupport.init"
7-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.5-pre2/support/gdb-swo.init"
8-target-select extended-remote localhost:50000
9-interpreter-exec console "monitor reset halt"
10-target-download
11-interpreter-exec console "monitor reset halt"
12-enable-pretty-printing
13-interpreter-exec console "monitor arm semihosting enable"
-> 6^done
-> =cmd-param-changed,param="language",value="c"
-> =cmd-param-changed,param="language",value="auto"
-> 7^done
-> =thread-group-started,id="i1",pid="42000"
-> =thread-created,id="1",group-id="i1"
-> ~"Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1542\n"
Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1542
-> ~"1542\t\tasm (\"ldr sp, =_estack\");\n"
1542        asm ("ldr sp, =_estack");
-> *stopped,frame={addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1542",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
Program stopped, probably due to a reset and/or halt issued by debugger
-> 8^connected
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 9^done
-> 10+download,{section=".text",section-size="165360",total-size="2421022"}
-> 10+download,{section=".text",section-sent="16160",section-size="165360",total-sent="16160",total-size="2421022"}
-> 10+download,{section=".text",section-sent="165360",section-size="165360",total-sent="165360",total-size="2421022"}
-> 10+download,{section=".exidx",section-size="8",total-size="2421022"}
-> 10+download,{section=".init_array",section-size="40",total-size="2421022"}
-> 10+download,{section=".fini_array",section-size="4",total-size="2421022"}
-> 10+download,{section=".data",section-size="3532",total-size="2421022"}
-> 10+download,{section=".isr_vector",section-size="664",total-size="2421022"}
-> 10+download,{section=".isr_vector",section-sent="664",section-size="664",total-sent="169608",total-size="2421022"}
-> 10^done,address="0x24000894",load-size="169608",transfer-rate="906384",write-rate="10600"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 11^done
-> 12^done
-> @"semihosting is enabled\n"
semihosting is enabled
-> @"\n"

-> 13^done
14-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h:27"
-> 14^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24007610",func="FMVoices::Update()",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h:27"}
15-thread-list-ids
-> 15^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
16-thread-info 1
-> 16^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1542",arch="armv7e-m"},state="stopped"}]
17-exec-continue
-> 17^running
-> *running,thread-id="all"
mi2.status = running
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24007610",func="FMVoices::Update()",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",thread-groups=["i1"],times="1",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h:27"}
-> ~"\n"

-> ~"Breakpoint 1, FMVoices::Update (this=0x2000a98c <fmVoices>) at FMVoices.h:27\n"
Breakpoint 1, FMVoices::Update (this=0x2000a98c <fmVoices>) at FMVoices.h:27
-> ~"27\t        for(uint_fast8_t uVoice = 0; uVoice < VOICE_COUNT; uVoice++)\n"
27          for(uint_fast8_t uVoice = 0; uVoice < VOICE_COUNT; uVoice++)
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24007610",func="FMVoices::Update",args=[{name="this",value="0x2000a98c <fmVoices>"}],file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
18-thread-list-ids
-> 18^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
19-thread-info 1
-> 19^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24007610",func="FMVoices::Update",args=[{name="this",value="0x2000a98c <fmVoices>"}],file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},state="stopped"}]
20-data-list-register-names
-> 20^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","sp","lr","pc","","","","","","","","","","xPSR","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","d10","d11","d12","d13","d14","d15","","","","","","","","","","","","","","","","","fpscr","msp","psp","primask","basepri","faultmask","control","s0","s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","s12","s13","s14","s15","s16","s17","s18","s19","s20","s21","s22","s23","s24","s25","s26","s27","s28","s29","s30","s31"]
21-stack-info-depth --thread 1 10000
-> 21^done,depth="3"
22-stack-list-frames --thread 1 0 2
-> 22^done,stack=[frame={level="0",addr="0x24007610",func="FMVoices::Update",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},frame={level="1",addr="0x240078fc",func="MainUI::Process",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="47",arch="armv7e-m"},frame={level="2",addr="0x240034b6",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="131",arch="armv7e-m"}]
23-data-list-register-values N
-> 23^done,register-values=[{number="0",value="536914316"},{number="1",value="4096"},{number="2",value="12"},{number="3",value="536914316"},{number="4",value="536988248"},{number="5",value="604148720"},{number="6",value="0"},{number="7",value="537001696"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="536966412"},{number="13",value="0x2001fee0"},{number="14",value="604010749"},{number="15",value="0x24007610 <FMVoices::Update()+12>"},{number="25",value="16777216"},{number="58",value="5.2635442471208903e-315"},{number="59",value="0.0062893564390265055"},{number="60",value="211106232532992"},{number="61",value="-0.0029657153328876973"},{number="62",value="8.7954674357251852e-06"},{number="63",value="0.69314718069162029"},{number="64",value="3.0517592239776188e-05"},{number="65",value="5.2635442471208903e-315"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="536870928"},{number="91",value="0x2001fee0"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="1"},{number="98",value="0"},{number="99",value="255"},{number="100",value="0.975629687"},{number="101",value="0"},{number="102",value="116"},{number="103",value="21741568"},{number="104",value="-0.907402873"},{number="105",value="-1.34229782e+14"},{number="106",value="0.44227621"},{number="107",value="-1.86522028e+38"},{number="108",value="1.79828668"},{number="109",value="3.48196239e+36"},{number="110",value="0.5"},{number="111",value="1"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
24-stack-select-frame --thread 1 0
25-stack-list-variables --thread 1 --frame 0 --simple-values
-> 24^done
-> 25^done,variables=[{name="uVoice",type="uint_fast8_t",value="0"},{name="this",arg="1",type="FMVoices * const",value="0x2000a98c <fmVoices>"}]
26-var-update --thread 1 --frame 0 --all-values var_uVoice_256
-> 26^error,msg="Variable object not found"
27-var-create --thread 1 --frame 0 var_uVoice_256 * "uVoice"
-> 27^done,name="var_uVoice_256",numchild="0",value="0",type="uint_fast8_t",thread-id="1",has_more="0"
28-var-update --thread 1 --frame 0 --all-values var_this_256
-> 28^error,msg="Variable object not found"
29-var-create --thread 1 --frame 0 var_this_256 * "this"
-> 29^done,name="var_this_256",numchild="1",value="0x2000a98c <fmVoices>",type="FMVoices * const",thread-id="1",has_more="0"
Reading symbols from arm-none-eabi-objdump --syms -C -h -w /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Reading symbols from arm-none-eabi-nm --defined-only -S -l -C -p /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf
Launching GDB: arm-none-eabi-gdb -q --interpreter=mi2 -d "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf"
1-gdb-set target-async on
Launching gdb-server: openocd -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth" -s /Users/andrewcapon/Development/openocd/scripts -f /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.5-pre2/support/openocd-helpers.tcl -f interface/stlink.cfg -f target/stm32h7x.cfg -c init -c "reset init" -c "gdb_breakpoint_override hard"
    Please check TERMINAL tab (gdb-server) for output from openocd
-> =thread-group-added,id="i1"
-> ~"Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...\n"
Reading symbols from /Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf...
Finished reading symbols from objdump: Time: 31 ms
-> 1^done
Suppressing output for '2-gdb-version'
3-interpreter-exec console "set print demangle on"
4-interpreter-exec console "set print asm-demangle on"
-> 3^done
-> =cmd-param-changed,param="print asm-demangle",value="on"
-> 4^done
Suppressing output for '5-symbol-info-variables'
Finished reading symbols from nm: Time: 57 ms
6-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.5-pre2/support/gdbsupport.init"
7-interpreter-exec console "source /Users/andrewcapon/.vscode/extensions/marus25.cortex-debug-1.3.5-pre2/support/gdb-swo.init"
8-target-select extended-remote localhost:50000
9-interpreter-exec console "monitor reset halt"
10-target-download
11-interpreter-exec console "monitor reset halt"
12-enable-pretty-printing
13-interpreter-exec console "monitor arm semihosting enable"
-> 6^done
-> =cmd-param-changed,param="language",value="c"
-> =cmd-param-changed,param="language",value="auto"
-> 7^done
-> =thread-group-started,id="i1",pid="42000"
-> =thread-created,id="1",group-id="i1"
-> ~"Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1542\n"
Reset_Handler () at ../libdaisy//core/startup_stm32h750xx.c:1542
-> ~"1542\t\tasm (\"ldr sp, =_estack\");\n"
1542        asm ("ldr sp, =_estack");
-> *stopped,frame={addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1542",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
Program stopped, probably due to a reset and/or halt issued by debugger
-> 8^connected
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 9^done
-> 10+download,{section=".text",section-size="165360",total-size="2421022"}
-> 10+download,{section=".text",section-sent="16160",section-size="165360",total-sent="16160",total-size="2421022"}
-> 10+download,{section=".text",section-sent="165360",section-size="165360",total-sent="165360",total-size="2421022"}
-> 10+download,{section=".exidx",section-size="8",total-size="2421022"}
-> 10+download,{section=".init_array",section-size="40",total-size="2421022"}
-> 10+download,{section=".fini_array",section-size="4",total-size="2421022"}
-> 10+download,{section=".data",section-size="3532",total-size="2421022"}
-> 10+download,{section=".isr_vector",section-size="664",total-size="2421022"}
-> 10+download,{section=".isr_vector",section-sent="664",section-size="664",total-sent="169608",total-size="2421022"}
-> 10^done,address="0x24000894",load-size="169608",transfer-rate="906384",write-rate="10600"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000
-> 11^done
-> 12^done
-> @"semihosting is enabled\n"
semihosting is enabled
-> @"\n"

-> 13^done
14-break-insert "/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h:27"
-> 14^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24007610",func="FMVoices::Update()",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",thread-groups=["i1"],times="0",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h:27"}
15-thread-list-ids
-> 15^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
16-thread-info 1
-> 16^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24000894",func="Reset_Handler",args=[],file="../libdaisy//core/startup_stm32h750xx.c",fullname="/Volumes/Crucial X8 2TB/Development/daisy/libdaisy/core/startup_stm32h750xx.c",line="1542",arch="armv7e-m"},state="stopped"}]
17-exec-continue
-> 17^running
-> *running,thread-id="all"
mi2.status = running
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24007610",func="FMVoices::Update()",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",thread-groups=["i1"],times="1",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h:27"}
-> ~"\n"

-> ~"Breakpoint 1, FMVoices::Update (this=0x2000a98c <fmVoices>) at FMVoices.h:27\n"
Breakpoint 1, FMVoices::Update (this=0x2000a98c <fmVoices>) at FMVoices.h:27
-> ~"27\t        for(uint_fast8_t uVoice = 0; uVoice < VOICE_COUNT; uVoice++)\n"
27          for(uint_fast8_t uVoice = 0; uVoice < VOICE_COUNT; uVoice++)
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24007610",func="FMVoices::Update",args=[{name="this",value="0x2000a98c <fmVoices>"}],file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
18-thread-list-ids
-> 18^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
19-thread-info 1
-> 19^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24007610",func="FMVoices::Update",args=[{name="this",value="0x2000a98c <fmVoices>"}],file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},state="stopped"}]
20-data-list-register-names
-> 20^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","sp","lr","pc","","","","","","","","","","xPSR","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","d10","d11","d12","d13","d14","d15","","","","","","","","","","","","","","","","","fpscr","msp","psp","primask","basepri","faultmask","control","s0","s1","s2","s3","s4","s5","s6","s7","s8","s9","s10","s11","s12","s13","s14","s15","s16","s17","s18","s19","s20","s21","s22","s23","s24","s25","s26","s27","s28","s29","s30","s31"]
21-stack-info-depth --thread 1 10000
-> 21^done,depth="3"
22-stack-list-frames --thread 1 0 2
-> 22^done,stack=[frame={level="0",addr="0x24007610",func="FMVoices::Update",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},frame={level="1",addr="0x240078fc",func="MainUI::Process",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="47",arch="armv7e-m"},frame={level="2",addr="0x240034b6",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="131",arch="armv7e-m"}]
23-data-list-register-values N
-> 23^done,register-values=[{number="0",value="536914316"},{number="1",value="4096"},{number="2",value="12"},{number="3",value="536914316"},{number="4",value="536988248"},{number="5",value="604148720"},{number="6",value="0"},{number="7",value="537001696"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="536966412"},{number="13",value="0x2001fee0"},{number="14",value="604010749"},{number="15",value="0x24007610 <FMVoices::Update()+12>"},{number="25",value="16777216"},{number="58",value="5.2635442471208903e-315"},{number="59",value="0.0062893564390265055"},{number="60",value="211106232532992"},{number="61",value="-0.0029657153328876973"},{number="62",value="8.7954674357251852e-06"},{number="63",value="0.69314718069162029"},{number="64",value="3.0517592239776188e-05"},{number="65",value="5.2635442471208903e-315"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="536870928"},{number="91",value="0x2001fee0"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="1"},{number="98",value="0"},{number="99",value="255"},{number="100",value="0.975629687"},{number="101",value="0"},{number="102",value="116"},{number="103",value="21741568"},{number="104",value="-0.907402873"},{number="105",value="-1.34229782e+14"},{number="106",value="0.44227621"},{number="107",value="-1.86522028e+38"},{number="108",value="1.79828668"},{number="109",value="3.48196239e+36"},{number="110",value="0.5"},{number="111",value="1"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
24-stack-select-frame --thread 1 0
25-stack-list-variables --thread 1 --frame 0 --simple-values
-> 24^done
-> 25^done,variables=[{name="uVoice",type="uint_fast8_t",value="0"},{name="this",arg="1",type="FMVoices * const",value="0x2000a98c <fmVoices>"}]
26-var-update --thread 1 --frame 0 --all-values var_uVoice_256
-> 26^error,msg="Variable object not found"
27-var-create --thread 1 --frame 0 var_uVoice_256 * "uVoice"
-> 27^done,name="var_uVoice_256",numchild="0",value="0",type="uint_fast8_t",thread-id="1",has_more="0"
28-var-update --thread 1 --frame 0 --all-values var_this_256
-> 28^error,msg="Variable object not found"
29-var-create --thread 1 --frame 0 var_this_256 * "this"
-> 29^done,name="var_this_256",numchild="1",value="0x2000a98c <fmVoices>",type="FMVoices * const",thread-id="1",has_more="0"

restart/build. same breakpoint:

36-interpreter-exec console "monitor reset halt"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000, semihosting\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000, semihosting
-> 36^done
37-interpreter-exec console "load"
-> ~"`/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf' has changed; re-reading symbols.\n"
`/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/build/SimpleFMSynth.elf' has changed; re-reading symbols.
-> ~"Loading section .text, size 0x285f0 lma 0x24000000\n"
Loading section .text, size 0x285f0 lma 0x24000000
-> 37+download,{section=".text",section-size="165360",total-size="2421022"}
-> 37+download,{section=".text",section-sent="16160",section-size="165360",total-sent="16160",total-size="2421022"}
-> 37+download,{section=".text",section-sent="165360",section-size="165360",total-sent="165360",total-size="2421022"}
-> ~"Loading section .exidx, size 0x8 lma 0x240285f0\n"
Loading section .exidx, size 0x8 lma 0x240285f0
-> 37+download,{section=".exidx",section-size="8",total-size="2421022"}
-> ~"Loading section .init_array, size 0x28 lma 0x240285f8\n"
Loading section .init_array, size 0x28 lma 0x240285f8
-> 37+download,{section=".init_array",section-size="40",total-size="2421022"}
-> ~"Loading section .fini_array, size 0x4 lma 0x24028620\n"
Loading section .fini_array, size 0x4 lma 0x24028620
-> 37+download,{section=".fini_array",section-size="4",total-size="2421022"}
-> ~"Loading section .data, size 0xdcc lma 0x24028624\n"
Loading section .data, size 0xdcc lma 0x24028624
-> 37+download,{section=".data",section-size="3532",total-size="2421022"}
-> ~"Loading section .isr_vector, size 0x298 lma 0x8000000\n"
Loading section .isr_vector, size 0x298 lma 0x8000000
-> 37+download,{section=".isr_vector",section-size="664",total-size="2421022"}
-> 37+download,{section=".isr_vector",section-sent="664",section-size="664",total-sent="169608",total-size="2421022"}
-> ~"Start address 0x24000894, load size 169608\n"
Start address 0x24000894, load size 169608
-> ~"Transfer rate: 109 KB/sec, 10600 bytes/write.\n"
Transfer rate: 109 KB/sec, 10600 bytes/write.
-> 37^done
38-interpreter-exec console "monitor reset halt"
-> @"target halted due to debug-request, current mode: Thread \n"
target halted due to debug-request, current mode: Thread
-> @"xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000, semihosting\n"
xPSR: 0x01000000 pc: 0x24000894 msp: 0x20020000, semihosting
-> 38^done
39-exec-continue
-> 39^running
-> *running,thread-id="all"
mi2.status = running
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x24007610",func="FMVoices::Update()",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",thread-groups=["i1"],times="2",original-location="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h:27"}
-> ~"\n"

-> ~"Breakpoint 1, FMVoices::Update (this=0x2000a98c <fmVoices>) at FMVoices.h:27\n"
Breakpoint 1, FMVoices::Update (this=0x2000a98c <fmVoices>) at FMVoices.h:27
-> ~"27\t        for(uint_fast8_t uVoice = 0; uVoice < VOICE_COUNT; uVoice++)\n"
27          for(uint_fast8_t uVoice = 0; uVoice < VOICE_COUNT; uVoice++)
-> *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x24007610",func="FMVoices::Update",args=[{name="this",value="0x2000a98c <fmVoices>"}],file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},thread-id="1",stopped-threads="all"
mi2.status = stopped
40-thread-list-ids
-> 40^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
41-thread-info 1
-> 41^done,threads=[{id="1",target-id="Remote target",frame={level="0",addr="0x24007610",func="FMVoices::Update",args=[{name="this",value="0x2000a98c <fmVoices>"}],file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},state="stopped"}]
42-data-list-register-values N
-> 42^done,register-values=[{number="0",value="536914316"},{number="1",value="4096"},{number="2",value="12"},{number="3",value="536914316"},{number="4",value="536988248"},{number="5",value="604148720"},{number="6",value="0"},{number="7",value="537001696"},{number="8",value="0"},{number="9",value="0"},{number="10",value="0"},{number="11",value="0"},{number="12",value="536966412"},{number="13",value="0x2001fee0"},{number="14",value="604010749"},{number="15",value="0x24007610 <FMVoices::Update()+12>"},{number="25",value="16777216"},{number="58",value="5.2635442471208903e-315"},{number="59",value="0.0062893564390265055"},{number="60",value="211106232532992"},{number="61",value="-0.0029657153328876973"},{number="62",value="8.7954674357251852e-06"},{number="63",value="0.69314718069162029"},{number="64",value="3.0517592239776188e-05"},{number="65",value="5.2635442471208903e-315"},{number="66",value="0"},{number="67",value="0"},{number="68",value="0"},{number="69",value="0"},{number="70",value="0"},{number="71",value="0"},{number="72",value="0"},{number="73",value="-nan(0xfffff00000000)"},{number="90",value="536870928"},{number="91",value="0x2001fee0"},{number="92",value="0x0"},{number="93",value="0"},{number="94",value="0"},{number="95",value="0"},{number="96",value="4"},{number="97",value="1"},{number="98",value="0"},{number="99",value="255"},{number="100",value="0.975629687"},{number="101",value="0"},{number="102",value="116"},{number="103",value="21741568"},{number="104",value="-0.907402873"},{number="105",value="-1.34229782e+14"},{number="106",value="0.44227621"},{number="107",value="-1.86522028e+38"},{number="108",value="1.79828668"},{number="109",value="3.48196239e+36"},{number="110",value="0.5"},{number="111",value="1"},{number="112",value="0"},{number="113",value="0"},{number="114",value="0"},{number="115",value="0"},{number="116",value="0"},{number="117",value="0"},{number="118",value="0"},{number="119",value="0"},{number="120",value="0"},{number="121",value="0"},{number="122",value="0"},{number="123",value="0"},{number="124",value="0"},{number="125",value="0"},{number="126",value="0"},{number="127",value="0"},{number="128",value="-nan(0x7fffff)"}]
43-stack-info-depth --thread 1 10000
-> 43^done,depth="3"
44-stack-list-frames --thread 1 0 2
-> 44^done,stack=[frame={level="0",addr="0x24007610",func="FMVoices::Update",file="FMVoices.h",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/FMVoices.h",line="27",arch="armv7e-m"},frame={level="1",addr="0x240078fc",func="MainUI::Process",file="MainUI.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/MainUI.cpp",line="47",arch="armv7e-m"},frame={level="2",addr="0x240034b6",func="main",file="SimpleFMSynth.cpp",fullname="/Volumes/Crucial X8 2TB/Development/daisy/SimpleFMSynth/SimpleFMSynth.cpp",line="131",arch="armv7e-m"}]
45-stack-select-frame --thread 1 0
46-stack-list-variables --thread 1 --frame 0 --simple-values
-> 45^done
-> 46^done,variables=[{name="uVoice",type="uint_fast8_t",value="0"},{name="this",arg="1",type="FMVoices * const",value="0x2000a98c <fmVoices>"}]
47-var-update --thread 1 --frame 0 --all-values var_uVoice_256
-> 47^done,changelist=[{name="var_uVoice_256",in_scope="invalid",has_more="0"}]
48-var-update --thread 1 --frame 0 --all-values var_this_256
-> 48^done,changelist=[{name="var_this_256",in_scope="invalid",has_more="0"}]

At this point getting <unknown> in variables window.

p this works fine though:

p this
55-stack-select-frame --thread 1 0
56-interpreter-exec console "p this"
-> 55^done
-> ~"$2 = (FMVoices * const) 0x2000a98c <fmVoices>\n"
$2 = (FMVoices * const) 0x2000a98c <fmVoices>
-> 56^done
{"output":"","token":56,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[]}}
57-stack-select-frame --thread 1 0
58-stack-list-variables --thread 1 --frame 0 --simple-values
-> 57^done
-> 58^done,variables=[{name="uVoice",type="uint_fast8_t",value="0"},{name="this",arg="1",type="FMVoices * const",value="0x2000a98c <fmVoices>"}]
59-var-update --thread 1 --frame 0 --all-values var_uVoice_256
-> 59^done,changelist=[{name="var_uVoice_256",in_scope="invalid",has_more="0"}]
60-var-update --thread 1 --frame 0 --all-values var_this_256
-> 60^done,changelist=[{name="var_this_256",in_scope="invalid",has_more="0"}]

Can continue debugging, hitting breakpoints and using p to display things and everything is fine. (apart from <unknown> in the variables window)

haneefdm commented 2 years ago

Head scratcher !?!?!? Can you try the following your launch.json? I know it is out of the left-field but I can explain if it works (seriously doubt it but worth a shot).

           "postRestartCommands": [
                "monitor gdb_sync",
                "stepi",
            ],
AndrewCapon commented 2 years ago

Still get the <unknown> with that in, only difference seems to be the debugger starts in the rest handler.