First and for most I googled a lot and Its been a week of searching with no solution at all. Please bare with me!
I tried to add all necessary info! Please request more If you need.
My problem is:
I am trying to debug a STM32 bluepill board with skeleton code project using STM32-for-vscode, OpenOCD and cortex debug in Vscode but without any success. The debugging session fails!
My environment is:
1- Mac OS Big Sur version 11.1 (20C69).
2- VSCODE.
3- Cortex Debug Plugin.
4- STM32-for-Vscode plugin.
5- ARM plugin.
6- The project is a Skeleton code created using STM32CubeMax as per STM32-for-Vscode instructions.
7- Brew "Opened --HEAD" version which should work with Cortex debug plugin.
8- Using a STM32f103c8 bluepill flashed with STlink V2.1 firmware as a STlink dongle. I already edited the .cfg file to allow for non genuine STM32 CPU IDs.
9- Using stm32f103c8 bluepill as Target board to upload Code and Debug.
Please note that the exact same Hardware set works perfectly with PlatformIO and flashes and debugs correctly.
Launch.json configuration:
{
"configurations": [
{
"showDevDebugOutput": true,
"cwd": "${workspaceRoot}",
"executable": "./build/SkeletonCode.elf",
"name": "Debug STM32",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"preLaunchTask": "Build STM",
"device": "stlink",
"configFiles": [
"interface/stlink.cfg",
"target/stm32f1x.cfg"
]
}
]
}
tasks.json configuration
{
"version": "2.0.0",
"tasks": [
{
"label": "Build STM",
"type": "process",
"command": "${command:stm32-for-vscode.build}",
"options": {
"cwd": "${workspaceRoot}"
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Build Clean STM",
"type": "process",
"command": "${command:stm32-for-vscode.cleanBuild}",
"options": {
"cwd": "${workspaceRoot}"
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Flash STM",
"type": "process",
"command": "${command:stm32-for-vscode.flash}",
"options": {
"cwd": "${workspaceRoot}"
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
}
]
}
When I start debugging I get the code control in the startup file on movs r1, #0
with the debugger controls with the following:
Output:
Open On-Chip Debugger 0.11.0-rc2+dev-g427552c-dirty (2021-01-30-10:09)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : clock speed 1000 kHz
Info : STLINK V2J37S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 5.022309
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f1x.cpu on 50000
Info : Listening on port 50000 for gdb connections
Info : accepting 'gdb' connection on tcp/50000
target halted due to debug-request, current mode: Handler HardFault
xPSR: 0x01000003 pc: 0xfffffffe msp: 0xffffffd8
Info : device id = 0x20036410
Info : flash size = 64kbytes
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08000974 msp: 0x20005000
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 100ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 700ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 1500ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 3100ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Info : Previous state query failed, trying to reconnect
Error: jtag status contains invalid mode value - communication failure
Polling target stm32f1x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 6300ms
Debug console output
Reading symbols from '/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/build/SkeletonCode.elf'
Finished reading symbols
Please check OUTPUT tab (Adapter Output) for output from /usr/local/bin/openocd
Launching server: "/usr/local/bin/openocd" "-c" "gdb_port 50000" "-s" "/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton" "-f" "interface/stlink.cfg" "-f" "target/stm32f1x.cfg"
Launching GDB: "arm-none-eabi-gdb" "-q" "--interpreter=mi2"
1-gdb-set target-async on
2-interpreter-exec console "source /Users/engmoh/.vscode/extensions/marus25.cortex-debug-0.3.10/support/gdbsupport.init"
3-target-select extended-remote localhost:50000
4-interpreter-exec console "monitor reset halt"
5-target-download
6-interpreter-exec console "monitor reset halt"
7-enable-pretty-printing
GDB -> App: {"outOfBandRecord":[{"isStream":false,"type":"notify","asyncClass":"thread-group-added","output":[["id","i1"]]}]}
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"console","content":"Reading symbols from /Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/build/SkeletonCode.elf...\n"}]}
Reading symbols from /Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/build/SkeletonCode.elf...
GDB -> App: {"token":1,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[]}}
GDB -> App: {"token":2,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[]}}
GDB -> App: {"outOfBandRecord":[{"isStream":false,"type":"notify","asyncClass":"thread-group-started","output":[["id","i1"],["pid","42000"]]}]}
GDB -> App: {"outOfBandRecord":[{"isStream":false,"type":"notify","asyncClass":"thread-created","output":[["id","1"],["group-id","i1"]]}]}
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"console","content":"0xfffffffe in ?? ()\n"}]}
0xfffffffe in ?? ()
GDB -> App: {"outOfBandRecord":[{"isStream":false,"type":"exec","asyncClass":"stopped","output":[["frame",[["addr","0xfffffffe"],["func","??"],["args",[]],["arch","armv7"]]],["thread-id","1"],["stopped-threads","all"]]}]}
Not implemented stop reason (assuming exception): undefined
GDB -> App: {"token":3,"outOfBandRecord":[],"resultRecords":{"resultClass":"connected","results":[]}}
8-thread-list-ids
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"target","content":"target halted due to debug-request, current mode: Thread \n"}]}
target halted due to debug-request, current mode: Thread
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"target","content":"xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc\n"}]}
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
GDB -> App: {"token":4,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[]}}
9-thread-list-ids
GDB -> App: {"token":5,"outOfBandRecord":[{"isStream":false,"type":"status","asyncClass":"download","output":[]}]}
GDB -> App: {"token":5,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["address","0x08000974"],["load-size","4116"],["transfer-rate","159072"],["write-rate","686"]]}}
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"target","content":"\n"}]}
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"target","content":"jtag status contains invalid mode value - communication failure\n"}]}
jtag status contains invalid mode value - communication failure
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"target","content":"Polling target stm32f1x.cpu failed, trying to reexamine\n"}]}
Polling target stm32f1x.cpu failed, trying to reexamine
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"target","content":"Examination failed, GDB will be halted. Polling again in 100ms\n"}]}
Examination failed, GDB will be halted. Polling again in 100ms
GDB -> App: {"token":6,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[]}}
GDB -> App: {"token":7,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[]}}
10-break-insert "/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/Core/Src/main.c:63"
GDB -> App: {"token":8,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["thread-ids",[["thread-id","1"]]],["current-thread-id","1"],["number-of-threads","1"]]}}
11-thread-info 1
GDB -> App: {"token":9,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["thread-ids",[["thread-id","1"]]],["current-thread-id","1"],["number-of-threads","1"]]}}
12-thread-info 1
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"console","content":"Note: automatically using hardware breakpoints for read-only addresses.\n"}]}
Note: automatically using hardware breakpoints for read-only addresses.
GDB -> App: {"token":10,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["bkpt",[["number","1"],["type","breakpoint"],["disp","keep"],["enabled","y"],["addr","0x080001a4"],["func","main"],["file","Core/Src/main.c"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/Core/Src/main.c"],["line","72"],["thread-groups",["i1"]],["times","0"],["original-location","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/Core/Src/main.c:63"]]]]}}
GDB -> App: {"token":11,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["threads",[[["id","1"],["target-id","Remote target"],["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["args",[]],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]],["state","stopped"]]]]]}}
GDB -> App: {"token":12,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["threads",[[["id","1"],["target-id","Remote target"],["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["args",[]],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]],["state","stopped"]]]]]}}
13-stack-info-depth --thread 1 10000
GDB -> App: {"token":13,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["depth","1"]]}}
14-stack-list-frames --thread 1 0 0
GDB -> App: {"token":14,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["stack",[["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]]]]]}}
15-thread-list-ids
GDB -> App: {"token":15,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["thread-ids",[["thread-id","1"]]],["current-thread-id","1"],["number-of-threads","1"]]}}
16-thread-info 1
17-data-list-register-names
GDB -> App: {"token":16,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["threads",[[["id","1"],["target-id","Remote target"],["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["args",[]],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]],["state","stopped"]]]]]}}
GDB -> App: {"token":17,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["register-names",["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","sp","lr","pc","","","","","","","","","","xPSR","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","msp","psp","primask","basepri","faultmask","control"]]]}}
18-stack-info-depth --thread 1 10000
GDB -> App: {"token":18,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["depth","1"]]}}
19-stack-list-frames --thread 1 0 0
GDB -> App: {"token":19,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["stack",[["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]]]]]}}
20-stack-info-depth --thread 1 10000
GDB -> App: {"token":20,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["depth","1"]]}}
21-stack-list-frames --thread 1 0 0
GDB -> App: {"token":21,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["stack",[["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]]]]]}}
22-thread-list-ids
GDB -> App: {"token":22,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["thread-ids",[["thread-id","1"]]],["current-thread-id","1"],["number-of-threads","1"]]}}
23-thread-info 1
GDB -> App: {"token":23,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["threads",[[["id","1"],["target-id","Remote target"],["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["args",[]],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]],["state","stopped"]]]]]}}
24-data-list-register-values N
GDB -> App: {"token":24,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["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","0xffffffd8"]],[["number","14"],["value","-7"]],[["number","15"],["value","0x8000974 <Reset_Handler>"]],[["number","25"],["value","16777219"]],[["number","91"],["value","0x20005000"]],[["number","92"],["value","0x0"]],[["number","93"],["value","0"]],[["number","94"],["value","0"]],[["number","95"],["value","0"]],[["number","96"],["value","0"]]]]]}}
25-stack-list-variables --thread 1 --frame 0 --simple-values
GDB -> App: {"token":25,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["variables",[]]]}}
26-data-evaluate-expression --thread 1 --frame 0 LoopCopyDataInit
GDB -> App: {"token":26,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["value","{<text variable, no debug info>} 0x8000980 <Reset_Handler+12>"]]}}
27-data-evaluate-expression --thread 1 --frame 0 Reset_Handler
GDB -> App: {"token":27,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["value","{<text variable, no debug info>} 0x8000974 <Reset_Handler>"]]}}
28-data-evaluate-expression --thread 1 --frame 0 .weak
GDB -> App: {"token":28,"outOfBandRecord":[],"resultRecords":{"resultClass":"error","results":[["msg","A syntax error in expression, near `.weak'."]]}}
hover: A syntax error in expression, near `.weak'. (from data-evaluate-expression --thread 1 --frame 0 .weak)
as soon as I click on step into from the debugger control I get the following console output:
DB -> App: {"token":29,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["frame",[["level","0"],["addr","0x08000974"],["func","Reset_Handler"],["file","startup_stm32f103xb.s"],["fullname","/Users/engmoh/Embedded/VSCODE_Projects/2-STM32_Skeleton/startup_stm32f103xb.s"],["line","65"],["arch","armv7"]]]]}}
30-exec-step --thread 1
GDB -> App: {"token":30,"outOfBandRecord":[],"resultRecords":{"resultClass":"running","results":[]}}
GDB -> App: {"outOfBandRecord":[{"isStream":false,"type":"exec","asyncClass":"running","output":[["thread-id","all"]]}]}
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"log","content":"Warning:\n"}]}
Warning:
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"log","content":"Cannot insert hardware breakpoint 1.\n"}]}
Cannot insert hardware breakpoint 1.
GDB -> App: {"outOfBandRecord":[{"isStream":true,"type":"log","content":"Could not insert hardware breakpoints:\n"}]}
Although, I have not set any breakpoints at all!
and in **Output ** I get:
Info : dropped 'gdb' connection
shutdown command invoked
Then the debugger controls buttons are grayed out! and my MCU is bricked and I would need to Erase it using a UART connection to get it back to work!
What to do? How to be able to program and debug this board using my environment!