Книга или статья по отладке программ
От: Shmj Ниоткуда  
Дата: 18.07.23 06:54
Оценка:
Надеюсь сейчас правильный вопрос и тапками не забьете.

Вот пришлось мне по мелочи доработать некую либу, разработка под MacOS. Либу автор распространяет с открытым кодом и прилагает .sh+CMake-скрипты для сборки.

Первое время я правил в CotEditor (или подобном) по мелочи и потом собирал скриптами.

Потом открыл всю папку в VS Code (с плагинами). И тут дело вот в чем — оно не идет как полноценная IDE. Вернее как — простой проект я в ней могу собрать и прямо оттуда запустить, а вот настроить полную конфигурацию для запуска большого проекта — не ясно как. Ну и оно особо не горит как бы — кое-что VS Code подсказывает, но до полноценной IDE далеко.

Отладку организовал с помощью простой функции:

static void log_to_file(const std::string message)
{
   std::ofstream outfile;
   outfile.open("/Users/test/Documents/LOG/Log1.txt", std::ios_base::app);
   outfile << message << endl;
}


Т.е. натыкиваю ее вызов везде по шагам, где возникает проблема — так и живу.

Понятно что все ошибки перехватить не возможно — но можно обнаружить в каком месте возникает проблема хотя бы а потом догадаться.

Как мне перейти на новый уровень? Есть ли пошаговая инструкция или книга, желательно с картинками?

Как я понимаю, самое простое — открыть проект в полноценной IDE. А можно еще просто подключаться дебаггером к процессу. Где взять бы инструкции на все это?
=сначала спроси у GPT=
Re: Книга или статья по отладке программ
От: Zhendos  
Дата: 18.07.23 07:46
Оценка: 8 (1) +1
Здравствуйте, Shmj, Вы писали:

S>Надеюсь сейчас правильный вопрос и тапками не забьете.


S>Вот пришлось мне по мелочи доработать некую либу, разработка под MacOS. Либу автор распространяет с открытым кодом и прилагает .sh+CMake-скрипты для сборки.


S>Как я понимаю, самое простое — открыть проект в полноценной IDE. А можно еще просто подключаться дебаггером к процессу. Где взять бы инструкции на все это?


Непонятно в чем сложность. Запускаете "cmake -GXcode path/to/CMakeLists.txt",
открываете получившийся в XCode "open -a Xcode *.xcodeproj".
Далее выбираете в проекте исполняемый файл, выбираете файл с функцией "main",
ставите breakpoint и нажимаете Command-R, чтобы запустить файл.
Re: Книга или статья по отладке программ
От: VVV Россия  
Дата: 18.07.23 17:19
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Как я понимаю, самое простое — открыть проект в полноценной IDE. А можно еще просто подключаться дебаггером к процессу. Где взять бы инструкции на все это?


Под MacOS есть такие пути:
1. Для VSCode тебе нужно настроить файл launch.json https://code.visualstudio.com/docs/cpp/launch-json-reference и всё сразу у тебя есть — запускаешь, ставишь брейкпойнты, отлаживаешься
2. Для XCode примерно такая же схема — создаёшь проект — перетаскиваешь туда свой корневой директорий как ссылку, настраиваешь New Scheme... для запуска своего бинарника и можно отлаживаться
3. Использовать lldb. lldb ./shmjapp — уже более консольный вид, но некоторым нравится. После загрузки ставишь брейкпойнты
b MyFunction
и запускаешь на выполнение
r [arg1] [arg2]..
команды для lldb — в интернете

Все три варианта позволяют как запускать процесс, так и подключаться к уже запущенному.
Re[2]: Книга или статья по отладке программ
От: Shmj Ниоткуда  
Дата: 20.07.23 09:30
Оценка: :)
Здравствуйте, Zhendos, Вы писали:

Z>Непонятно в чем сложность. Запускаете "cmake -GXcode path/to/CMakeLists.txt",


А откуда вы об этом узнали? Действительно сработало.

Можно ли так же сделать для QT или VS Code?
=сначала спроси у GPT=
Re[2]: Книга или статья по отладке программ
От: Shmj Ниоткуда  
Дата: 20.07.23 09:33
Оценка:
Здравствуйте, VVV, Вы писали:

VVV>Под MacOS есть такие пути:

VVV>1. Для VSCode тебе нужно настроить файл launch.json https://code.visualstudio.com/docs/cpp/launch-json-reference и всё сразу у тебя есть — запускаешь, ставишь брейкпойнты, отлаживаешься

Его только вручную создавать? Для маленького проекта я как-то создал и оно работает (хотя почему то не видит доп. файлы cpp — не понял как подключить). Как быть с большим проектом, который состоит из подпроектов?

Есть где-то подробнее про создание этих launch-json?

VVV>2. Для XCode примерно такая же схема — создаёшь проект — перетаскиваешь туда свой корневой директорий как ссылку, настраиваешь New Scheme... для запуска своего бинарника и можно отлаживаться


Ну тут чел. выше дал ключ — оказывается cmake -GXcode все сам поделает.

Нет ли такого же ключа для VS Code или QT Creator?
=сначала спроси у GPT=
Re[3]: Книга или статья по отладке программ
От: Zhendos  
Дата: 20.07.23 09:44
Оценка:
Здравствуйте, Shmj, Вы писали:

Z>>Непонятно в чем сложность. Запускаете "cmake -GXcode path/to/CMakeLists.txt",


S>А откуда вы об этом узнали? Действительно сработало.


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

S>Можно ли так же сделать для QT или VS Code?


А зачем? "VS Code" с дополнением "cmake что-то там" умеет открывать CMakeLists.txt
напрямую, и сборка и запуск и отладка будут работать.
Тоже самое с "Qt Creator", в нем даже никаких плагинов ставить не нужно,
он умеет с CMakeLists.txt работать из коробки.
Re[3]: Книга или статья по отладке программ
От: VVV Россия  
Дата: 20.07.23 11:06
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Его только вручную создавать?

S>Есть где-то подробнее про создание этих launch-json?

Вручную придётся задать путь до бинарника и аргументы командной строки.
https://code.visualstudio.com/docs/editor/debugging
Re[4]: Книга или статья по отладке программ
От: FR  
Дата: 21.07.23 06:23
Оценка: 2 (1)
Здравствуйте, VVV, Вы писали:

VVV>Вручную придётся задать путь до бинарника и аргументы командной строки.

VVV>https://code.visualstudio.com/docs/editor/debugging

Если используется cmake плагин можно и не вручную, а примерно так:
{
    "type": "lldb",
    "request": "launch",
    "name": "Launch lldb cmake",
    "program": "${command:cmake.launchTargetPath}",
    "args": [],
    "cwd": "${workspaceFolder}/bin",
},


То есть задавая так: "program": "${command:cmake.launchTargetPath}",
Выбирать потом что запускать, если несколько целей, можно в статус баре внизу, там же и запускать можно по кнопке.
Re[3]: Оффтоп
От: DiPaolo Россия  
Дата: 21.07.23 06:55
Оценка:
Z>>Непонятно в чем сложность. Запускаете "cmake -GXcode path/to/CMakeLists.txt",

S>А откуда вы об этом узнали? Действительно сработало.


S>Можно ли так же сделать для QT или VS Code?


это многое объясняет
Патриот здравого смысла
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.