microsoft / microsoft/vscode-cpptools
debugging remote device get asynchronous between call stack and toolbar
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 6.2k
- Forks
- 1.7k
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 61
Description
Environment
- OS and version: Window 10
- VS Code: 1.87.0
- C/C++ extension: 1.19.4
- OS and version of remote machine (if applicable): extended remote device
- GDB / LLDB version: 7.8.2
Bug Summary and Steps to Reproduce
Bug Summary: Debugging multiple cores on the remote device shows wrong commands.
There are 4 cores on the remote device, when debugging, a core will load the source, and 3 cores will not.
Steps to reproduce:
-
Suspend all cores
-
On call stack, resume a core that loads the source. Now the toolbar shows the process is running. (See the picture)
-
On call stack, choose a core that does not load the source. Now the toolbar still shows the process is running. (See the picture)
Note: All cores are suspended in step 1, the toolbar should shows the process is paused.
Debugger Configurations
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "renesas-rcar",
"request": "launch",
"name": "Renesas GDB Hardware Debugging",
// "debugServer": 4711,
"program": "D:/e2_studio_rcar/RH850_10172023/HardwareDebug/RH850_10172023.x",
"logFile": "D:/exe_VSCode/Logs/rh850.txt",
"hardwareBreakpoint": true,
"target": {
"deviceFamily": "RH850",
"device": "R7F702Z19A",
"debuggerType": "E2",
"serverParameters": [
"-ulpdType=",
"15",
"-uJTagClockFreq=",
"Default",
"-setOptJtagLpd=",
"0",
"-w",
"1",
"-usupplyVoltage=",
"1",
"-uocdID=",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
"-usvrParameter=",
"|||||||",
"-uMultiDeviceSync=",
"0",
"-usupplyVoltageASP=",
"0",
"-uMapMode=",
"0",
"-usetDebugContext=",
"0",
"-uConfigurationSetting=",
"0",
"-uSecuritySetting=",
"0",
"-uBlockProtection=",
"0",
"-uSwitch=",
"0",
"-uTraceEnable=",
"PE0",
"-uTraceClock=",
"PE0|400.0|PE1|400.0|PE2|400.0|PE3|400.0",
"-uUseSyncTrace=",
"0",
"-l",
"-uTraceCore=",
"PE0",
"--gdbVersion=",
"7.2"
]
}
}
]
}
Debugger Logs
>info stack
Error: could not evaluate expression
Other Extensions
Renesas Debug version 24.1.4
Additional Information
I assume the call stack will be synchronized with the toolbar when the debugger cannot determine the symbol corresponding to that address. Please let me know if it is the restriction of the call stack, and are there any ways to design the call stack on my own extension (extend from DAP).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the four-core scenario with the provided launch configuration, then compare the call stack selection with the debug toolbar state after resuming and selecting cores. Use the reported “could not evaluate expression” log to investigate the synchronization behavior; done means the toolbar shows paused when the selected core is suspended.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, vscode
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100