Vscode не передает аргументы программе при отладкеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Vscode не передает аргументы программе при отладке

Сообщение Anonymous »

Я использую VSCode в Ubuntu 24.04. Я использую кросс-компилятор C++ для Raspberry Pi Zero 2 W. У меня все работает нормально, но я заметил, что VSCode, похоже, не передает аргументы, определенные в launch.json. Launch.json выглядит следующим образом:

Код: Выделить всё

{
// 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"
},
Я использую getopt() для обработки argc и argv.

Код: Выделить всё

int main(int argc, char** argv) {

while(opt = getopt(argc, argv, "l:") != -1) {
string value;
switch (opt) {
При работе в режиме отладки он не переходит в цикл while(getopt()). Когда я останавливаюсь на строке while() и смотрю argc == 1, а argv указывает на полный путь к имени файла. Кажется, что argc должно быть 3, причем второй — «-l», а третий — «journal».
Я нашел кое-что, что предлагало использовать char* argv[] в main:< /p>

Код: Выделить всё

int main(int argc,char* argv[]) {
Я получил тот же результат.
Есть идеи, что я делаю неправильно?
Спасибо< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -debugging
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»