microsoft / microsoft/vscode-cpptools

cppdbg throws "Unable to find child property"

Offen
#14,036 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug debugger help wanted
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Environment

Version: 1.106.0-insider (user setup)
Commit: 18d828e5d596e56b516fac7baa53e4b32cf087be
Date: 2025-11-04T05:03:04.572Z
Electron: 37.7.0
ElectronBuildId: 12597478
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26200

Bug Summary and Steps to Reproduce

Bug Summary:
The cppdbg debugger adapter throws "Unable to find child property."
Refer: https://github.com/microsoft/vscode/issues/273721

Steps to reproduce:

  1. in vscode, open a c++ project
  2. set a breakpoint and start debugging to hit that
  3. hide the 'Variables' window
  4. reload the vscode
  5. start debugging again, add an variable in watch, right on the watched item.
    the context menu doesn't show up due to the dataBreakpointInfo() call into cppdbg debugger adapter throws "Unable to find child property.
Debugger Configurations
{
	"version": "0.2.0",
	"configurations": [
		{
			"name": "(gdb) Launch",
			"type": "cppdbg",
			"request": "launch",
			"program": "${workspaceFolder}/out",
			"args": [],
			"stopAtEntry": false,
			"cwd": "${workspaceFolder}",
			"environment": [],
			"externalConsole": false,
			"MIMode": "gdb",
			"setupCommands": [
				{
					"description": "Enable pretty-printing for gdb",
					"text": "-enable-pretty-printing",
					"ignoreFailures": true
				}
			]
		}
	]
}
Debugger Logs
<--   C (evaluate-18): {"command":"evaluate","arguments":{"expression":"","frameId":1000,"context":"hover","line":15,"column":0,"source":{"name":"main.cpp","path":"c:\\Users\\brchen\\repos\\test-cpp\\src\\main.cpp","sources":[],"checksums":[]}},"type":"request","seq":18}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (4390) <-1030-var-create  - * \"\"\r\n"},"seq":690}
1: (4390) <-1030-var-create  - * ""
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (4399) ->1030^error,msg=\"-var-create: unable to create variable object\"\r\n"},"seq":692}
1: (4399) ->1030^error,msg="-var-create: unable to create variable object"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (4399) 1030: elapsed time 9\r\n"},"seq":694}
1: (4399) 1030: elapsed time 9
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (4399) ->(gdb)\r\n"},"seq":696}
1: (4399) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (4400) ->&\"\\n\"\r\n"},"seq":698}
1: (4400) ->&"\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (4400) ->^done\r\n"},"seq":700}
1: (4400) ->^done
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (4400) ->(gdb)\r\n"},"seq":702}
1: (4400) ->(gdb)
--> R (evaluate-18): {"type":"response","request_seq":18,"success":false,"command":"evaluate","message":"Evaluation error","body":{},"seq":704}
<--   C (dataBreakpointInfo-19): {"command":"dataBreakpointInfo","arguments":{"name":"s.x","frameId":1000},"type":"request","seq":19}
--> R (dataBreakpointInfo-19): {"type":"response","request_seq":19,"success":false,"command":"dataBreakpointInfo","message":"Unable to get info for data breakpoint. Unable to find child property.","body":{},"seq":707}
Other Extensions

No response

Additional Information

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Sequenz bei ausgeblendetem Variables-Fenster zu reproduzieren; untersuche dann die dataBreakpointInfo-Anfrage und den zugehörigen evaluate-Aufruf im cppdbg-Debugger-Adapter. Verwende das bereitgestellte GDB/MI-Protokoll, um den leeren Ausdruck und die Suche nach untergeordneten Eigenschaften nachzuverfolgen. Als erledigt gilt die Aufgabe, wenn dataBreakpointInfo den Fehler nicht mehr erzeugt und das Kontextmenü des überwachten Elements angezeigt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp, typescript, vscode
Bereich
developer-experience, devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.