6

Отладка с параметрами командной строки в Visual Studio

13

Я разрабатываю командную консольное приложение на C++ в Visual Studio и мне нужно отлаживать его с аргументами командной строки. В данный момент я просто запускаю сгенерированный EXE-файл с необходимыми аргументами (например, program.exe -file.txt), но таким образом я не могу выполнять отладку. Существует ли способ, где можно указать аргументы для отладки?

5 ответ(ов)

0

Да, даже если вы запустите исполняемый файл вне Visual Studio, вы все равно можете использовать команду "Прикрепить", чтобы подключить Visual Studio к уже запущенному исполняемому файлу. Это может быть полезно, например, когда ваше приложение выполняется в качестве плагина внутри другого приложения.

0

Вы можете просто перейти в меню DEBUG → Свойства главного проектаСвойства конфигурацииОтладка, и вы увидите поле для ввода аргументов командной строки.

На самом деле, вы можете установить одни и те же входные аргументы для всех разных конфигураций, а не только для отладки.

Из выпадающего меню конфигурации выберите: Все конфигурации и вставьте входные аргументы (каждый аргумент разделен пробелом).

Теперь вы сможете выполнять вашу программу в разных режимах, не меняя входные аргументы каждый раз.

0

В Visual Studio 2022 действительно можно отлаживать любые исполняемые файлы (.exe). Вот пошаговая инструкция, как это сделать:

  1. Откройте папку, содержащую ваш .exe файл.

  2. Щелкните правой кнопкой мыши на .exe файле и выберите "Установить в качестве стартового элемента".

  3. Снова щелкните правой кнопкой мыши на .exe файле и выберите "Добавить конфигурацию отладки" или "Открыть параметры отладки и запуска", если конфигурационный файл уже создан.

  4. Добавьте args в файл launch.vs.json. Например:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "ffprobe.exe",
          "projectTarget": "",
          "name": "ffprobe.exe",
          "args": [ "C:\\Temp\\test-file" ]
        }
      ]
    }
    
  5. Щелкните правой кнопкой мыши на .exe файле и выберите "Отладка".

Следуя этим шагам, вы сможете успешно настроить отладку вашего исполняемого файла в Visual Studio 2022.

0

Это может помочь некоторым людям, у которых все еще есть проблемы. Я использую Visual Studio 2015, и мне удалось передать аргументы только после изменения определения argv.

Вместо

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

Я был вынужден использовать

int main(int argc, char *argv[]){
}

Не знаю, почему это было необходимо, но это сработало.

0

Это распространенная ситуация, когда Визуальная Студия создает и использует файл .csproj.user для сохранения пользовательских настроек проекта, включая аргументы командной строки. Этот файл автоматически восстанавливается при каждом открытии проекта, если вы его удалите.

Из вашего описания следует, что значения аргументов, которые вы видите в файле MyStartUpProject.csproj.user, не отображаются в свойствах проекта (Project Properties) в разделе отладки (Debugging). Это может происходить, если вы добавляете значения в свойствах проекта, которые затем просто дополняют уже имеющиеся значения в файле .csproj.user.

Чтобы решить эту проблему, вам нужно:

  1. Открыть файл MyStartUpProject.csproj.user в текстовом редакторе.
  2. Найти и изменить нужные аргументы командной строки непосредственно в этом файле.
  3. Сохранить изменения и перезапустить проект.

После этого ваши изменения должны отобразиться при запуске проекта. Учтите, что, если вы хотите, чтобы значения не добавлялись, вам нужно полностью очистить соответствующие поля в свойствах проекта перед добавлением новых значений или полностью удалять предыдущие значения из .csproj.user.

Также стоит отметить, что .csproj.user файл хранит настройки для конкретного пользователя, и изменения в нём не повлияют на других пользователей проекта, если у вас есть командная работа.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь