Отладка с параметрами командной строки в Visual Studio
Я разрабатываю командную консольное приложение на C++ в Visual Studio и мне нужно отлаживать его с аргументами командной строки. В данный момент я просто запускаю сгенерированный EXE-файл с необходимыми аргументами (например, program.exe -file.txt
), но таким образом я не могу выполнять отладку. Существует ли способ, где можно указать аргументы для отладки?
5 ответ(ов)
Да, даже если вы запустите исполняемый файл вне Visual Studio, вы все равно можете использовать команду "Прикрепить", чтобы подключить Visual Studio к уже запущенному исполняемому файлу. Это может быть полезно, например, когда ваше приложение выполняется в качестве плагина внутри другого приложения.
Вы можете просто перейти в меню DEBUG → Свойства главного проекта → Свойства конфигурации → Отладка, и вы увидите поле для ввода аргументов командной строки.
На самом деле, вы можете установить одни и те же входные аргументы для всех разных конфигураций, а не только для отладки.
Из выпадающего меню конфигурации выберите: Все конфигурации и вставьте входные аргументы (каждый аргумент разделен пробелом).
Теперь вы сможете выполнять вашу программу в разных режимах, не меняя входные аргументы каждый раз.
В Visual Studio 2022 действительно можно отлаживать любые исполняемые файлы (.exe). Вот пошаговая инструкция, как это сделать:
Откройте папку, содержащую ваш .exe файл.
Щелкните правой кнопкой мыши на .exe файле и выберите "Установить в качестве стартового элемента".
Снова щелкните правой кнопкой мыши на .exe файле и выберите "Добавить конфигурацию отладки" или "Открыть параметры отладки и запуска", если конфигурационный файл уже создан.
Добавьте args в файл launch.vs.json. Например:
{ "version": "0.2.1", "defaults": {}, "configurations": [ { "type": "default", "project": "ffprobe.exe", "projectTarget": "", "name": "ffprobe.exe", "args": [ "C:\\Temp\\test-file" ] } ] }
Щелкните правой кнопкой мыши на .exe файле и выберите "Отладка".
Следуя этим шагам, вы сможете успешно настроить отладку вашего исполняемого файла в Visual Studio 2022.
Это может помочь некоторым людям, у которых все еще есть проблемы. Я использую Visual Studio 2015, и мне удалось передать аргументы только после изменения определения argv
.
Вместо
int main(int argc, char **argv){
}
Я был вынужден использовать
int main(int argc, char *argv[]){
}
Не знаю, почему это было необходимо, но это сработало.
Это распространенная ситуация, когда Визуальная Студия создает и использует файл .csproj.user
для сохранения пользовательских настроек проекта, включая аргументы командной строки. Этот файл автоматически восстанавливается при каждом открытии проекта, если вы его удалите.
Из вашего описания следует, что значения аргументов, которые вы видите в файле MyStartUpProject.csproj.user
, не отображаются в свойствах проекта (Project Properties) в разделе отладки (Debugging). Это может происходить, если вы добавляете значения в свойствах проекта, которые затем просто дополняют уже имеющиеся значения в файле .csproj.user
.
Чтобы решить эту проблему, вам нужно:
- Открыть файл
MyStartUpProject.csproj.user
в текстовом редакторе. - Найти и изменить нужные аргументы командной строки непосредственно в этом файле.
- Сохранить изменения и перезапустить проект.
После этого ваши изменения должны отобразиться при запуске проекта. Учтите, что, если вы хотите, чтобы значения не добавлялись, вам нужно полностью очистить соответствующие поля в свойствах проекта перед добавлением новых значений или полностью удалять предыдущие значения из .csproj.user
.
Также стоит отметить, что .csproj.user
файл хранит настройки для конкретного пользователя, и изменения в нём не повлияют на других пользователей проекта, если у вас есть командная работа.
Как изменить цвет вывода echo в Linux
Ошибка "Неопределенная ссылка/нестираемая внешняя символ" — что это такое и как её исправить?
Программа, скомпилированная с флагом -g в gcc, работает медленнее, чем та же программа, скомпилированная без -g?
Что такое Правило трёх?
Разница между const int*, const int * const и int * const?