Vscode übergibt beim Debuggen keine Argumente an das Programm
Posted: 04 Jan 2025, 02:49
Ich verwende VSCode unter Ubuntu 24.04. Ich verwende den C++-Cross-Compiler für einen Raspberry Pi Zero 2 W. Die Dinge laufen einwandfrei, aber ich habe festgestellt, dass VSCode die in launch.json definierten Argumente nicht zu übergeben scheint. Launch.json sieht so aus:
Ich verwende getopt(), um argc und argv zu verarbeiten.
Bei der Ausführung im Debug geht es nicht in die while(getopt())-Schleife. Wenn ich in der Zeile while() anhalte und nachschaue, zeigt argc = 1 und argv auf den vollständigen Pfad des Dateinamens. Es scheint, als ob argc 3 sein sollte, wobei das zweite „-l“ und das dritte „journal“ ist.
Ich habe etwas gefunden, das die Verwendung von argv*[] in main vorschlägt:
Ich habe das gleiche Ergebnis erhalten.
Irgendwelche Ideen, was ich falsch mache?
Danke< /P>
Code: Select all
{
// See https://code.visualstudio.com/docs/cpp/launch-json-reference
"name": "Debug WeatherStation",
"cwd": "${workspaceRoot}",
"request": "launch",
"program": "${workspaceRoot}/build/src/WeatherStation",
"args": [
"-l",
"journal"
],
// Use cppdbg when using gdb
"type": "cppdbg",
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb-multiarch",
"miDebuggerArgs": "",
"miDebuggerServerAddress": "192.168.50.200:4711",
"targetArchitecture": "arm64",
"stopAtEntry": false,
"preLaunchTask": "StartGDBServer",
"postDebugTask": "StopGDBServer"
},
Code: Select all
int main(int argc, char** argv) {
while(opt = getopt(argc, argv, "l:") != -1) {
string value;
switch (opt) {
Ich habe etwas gefunden, das die Verwendung von argv*[] in main vorschlägt:
Code: Select all
int main(int argc,char* argv[]) {
Irgendwelche Ideen, was ich falsch mache?
Danke< /P>