Как отлаживать консольное приложение

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Как отлаживать консольное приложение

Сообщение still » 02.10.2015 23:19:18

Собственно, само приложение есть.
Необходимо запустить отладчик из IDE что бы открылось окошко терминала, и далее пошло исполненеи моего когда в режиме отладки.
Как?
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Как отлаживать консольное приложение

Сообщение gvido » 03.10.2015 01:06:54

Отладчик в лазарус не полный для паскаля- показывает не все объекты. Поэтому, использую вывод ключевых моментов в консоль или в окно(showmessage). То что понимает отладчик смотрю по точкам остова. Как-то так...
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Re: Как отлаживать консольное приложение

Сообщение SSerge » 03.10.2015 05:21:34

still писал(а):Необходимо запустить отладчик из IDE


Вы про какое IDE? FP.EXE?
Если про него, то эта мертворожденная жертва аборта фактически заброшена и практически не поддерживается хренову тучу времени. Ее, например, просто выбросили из официальных сборок Лазаруса. В консольной IDE много чего не работает. Вот совсем недавно выяснили, что например диалогов выбора цвета для элементов IDE больше нет, потому что проще заблокировать окошки в коде, чем разобраться, почему они глючат. Imho, то же и с отладчиком. Никогда его там не видел в работоспособной форме. :D

В IDE же Лазаруса отладчик работает.

still писал(а):и далее пошло исполненеи моего когда в режиме отладки.
Как?



1. Поставить точку останова в тексте программы (Run->Add breakpoint->Source Breakpoint) - или клацнуть мышью по пустому полю слева от текста и номеров строк
2. Run (F9) - запустить программу. Остановится на BreakPoint.

Осторожно с условиями. Особенно часто хочется остановить по равенству какой то строке. Так вот, сравнения строк в условиях BreakPoint не работают
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Как отлаживать консольное приложение

Сообщение still » 05.10.2015 00:53:27

Не. Вопрос чуток в другом.
У меня есть приложение консольное, которое необходимо выполнить в отладке.
Я его запускаю, однако консоль не открывается. Оно тихонечко про себя работает. Если я просто запускаю приложение в открытой консоли, все ок. Из лазаруса же окошко консоли отсуствует.
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Как отлаживать консольное приложение

Сообщение SSerge » 05.10.2015 09:40:29

still
"Run" -> "Run parameters"

В разделе "Launching Application" поставить check на "Use launching application"
и в строку внести что-то типа
Код: Выделить всё
/usr/bin/xterm -T "My program output window" $(TargetCmdLine)


?? Это ??
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Как отлаживать консольное приложение

Сообщение still » 05.10.2015 11:51:47

SSerge писал(а):?? Это ??

Да, это. Но когда я ставлю галку, не работает отладчик с брикпоинтами.
Если запускаю без внешнего приложения, то работает отладчик но нет вывода в консоль.

rect4147.png


Вот как то так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Как отлаживать консольное приложение

Сообщение SSerge » 05.10.2015 12:17:26

Вообще они сами по этому поводу имеют сказать следующее:

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
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Как отлаживать консольное приложение

Сообщение still » 05.10.2015 15:27:03

SSerge писал(а):You can open a console window from the menu: "View" => "Debug Windows" => "Terminal Output"

Спасибо.
Я надеюсь, у авторов был крайне веский повод сделать именно так.
Может это все же не пришито к лазарусу насмерть, а является всего лишь еще одним эмулятором, и его можно заменить?
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48

Re: Как отлаживать консольное приложение

Сообщение gluhow » 27.10.2015 11:22:07

Есть еще вариант просматривать вывод программы в нормальном терминале без потери отладки, но при это ввод работает хреновато. Для Linux надо открыть терминал, узнать его tty, набрав tty и результат скопировать в Lazarus-Сервис-Параметры-Отладчик-Общие-ConsoleTty.
gluhow
новенький
 
Сообщения: 41
Зарегистрирован: 13.08.2015 15:30:20

Re: Как отлаживать консольное приложение

Сообщение still » 23.11.2015 01:58:50

gluhow писал(а):Есть еще вариант просматривать вывод программы в нормальном терминале без потери отладки, но при это ввод работает хреновато. Для Linux надо открыть терминал, узнать его tty, набрав tty и результат скопировать в Lazarus-Сервис-Параметры-Отладчик-Общие-ConsoleTty.


О! Благодарю. Это уже кое что... конечно не без гемороя. Перед каждой отладкой проделывать операцию, но все же уже гораздо веселее.
Аватара пользователя
still
новенький
 
Сообщения: 40
Зарегистрирован: 01.10.2015 11:11:48


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

Рейтинг@Mail.ru