Как отлаживать консольное приложение
Модератор: Модераторы
Как отлаживать консольное приложение
Собственно, само приложение есть.
Необходимо запустить отладчик из IDE что бы открылось окошко терминала, и далее пошло исполненеи моего когда в режиме отладки.
Как?
Необходимо запустить отладчик из IDE что бы открылось окошко терминала, и далее пошло исполненеи моего когда в режиме отладки.
Как?
Отладчик в лазарус не полный для паскаля- показывает не все объекты. Поэтому, использую вывод ключевых моментов в консоль или в окно(showmessage). То что понимает отладчик смотрю по точкам остова. Как-то так...
still писал(а):Необходимо запустить отладчик из IDE
Вы про какое IDE? FP.EXE?
Если про него, то эта мертворожденная жертва аборта фактически заброшена и практически не поддерживается хренову тучу времени. Ее, например, просто выбросили из официальных сборок Лазаруса. В консольной IDE много чего не работает. Вот совсем недавно выяснили, что например диалогов выбора цвета для элементов IDE больше нет, потому что проще заблокировать окошки в коде, чем разобраться, почему они глючат. Imho, то же и с отладчиком. Никогда его там не видел в работоспособной форме.
В IDE же Лазаруса отладчик работает.
still писал(а):и далее пошло исполненеи моего когда в режиме отладки.
Как?
1. Поставить точку останова в тексте программы (Run->Add breakpoint->Source Breakpoint) - или клацнуть мышью по пустому полю слева от текста и номеров строк
2. Run (F9) - запустить программу. Остановится на BreakPoint.
Осторожно с условиями. Особенно часто хочется остановить по равенству какой то строке. Так вот, сравнения строк в условиях BreakPoint не работают
Не. Вопрос чуток в другом.
У меня есть приложение консольное, которое необходимо выполнить в отладке.
Я его запускаю, однако консоль не открывается. Оно тихонечко про себя работает. Если я просто запускаю приложение в открытой консоли, все ок. Из лазаруса же окошко консоли отсуствует.
У меня есть приложение консольное, которое необходимо выполнить в отладке.
Я его запускаю, однако консоль не открывается. Оно тихонечко про себя работает. Если я просто запускаю приложение в открытой консоли, все ок. Из лазаруса же окошко консоли отсуствует.
still
"Run" -> "Run parameters"
В разделе "Launching Application" поставить check на "Use launching application"
и в строку внести что-то типа
?? Это ??
"Run" -> "Run parameters"
В разделе "Launching Application" поставить check на "Use launching application"
и в строку внести что-то типа
Код: Выделить всё
/usr/bin/xterm -T "My program output window" $(TargetCmdLine)
?? Это ??
SSerge писал(а):?? Это ??
Да, это. Но когда я ставлю галку, не работает отладчик с брикпоинтами.
Если запускаю без внешнего приложения, то работает отладчик но нет вывода в консоль.
Вот как то так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Вообще они сами по этому поводу имеют сказать следующее:
http://wiki.lazarus.freepascal.org/Debugger_Console_App
http://wiki.lazarus.freepascal.org/Debugger_Console_App
Lazarus 0.9.31 / 1.0 and higher
You can open a console window from the menu: "View" => "Debug Windows" => "Terminal Output"
Открыть окно консоли из меню
It shows the raw output of your application. Note it has no support for any escape sequences, as some terminals may have.
В окне будет показан необработанный вывод вашего приложения. Нет поддержки для esc-последовательностей, обрабатываемых некоторыми терминалами
Anything you type into this window will be sent to your application.
все что вы туда впечатаете, будет послано в ваше приложение
SSerge писал(а):You can open a console window from the menu: "View" => "Debug Windows" => "Terminal Output"
Спасибо.
Я надеюсь, у авторов был крайне веский повод сделать именно так.
Может это все же не пришито к лазарусу насмерть, а является всего лишь еще одним эмулятором, и его можно заменить?
Есть еще вариант просматривать вывод программы в нормальном терминале без потери отладки, но при это ввод работает хреновато. Для Linux надо открыть терминал, узнать его tty, набрав tty и результат скопировать в Lazarus-Сервис-Параметры-Отладчик-Общие-ConsoleTty.
gluhow писал(а):Есть еще вариант просматривать вывод программы в нормальном терминале без потери отладки, но при это ввод работает хреновато. Для Linux надо открыть терминал, узнать его tty, набрав tty и результат скопировать в Lazarus-Сервис-Параметры-Отладчик-Общие-ConsoleTty.
О! Благодарю. Это уже кое что... конечно не без гемороя. Перед каждой отладкой проделывать операцию, но все же уже гораздо веселее.
