Перейти к содержанию
Fire Monkey от А до Я
  • 0

Отладка Indy


gonzales

Вопрос

Доброго времени суток

Столкнулся со странным поведением IDE

Хочу посмотреть, что происходит внутри модуля idHTTP. Но не могу поставить точку остановки. Многие строки не подсвечиваются синим кружком. См скрин. Как-то можно это исправить?

 

Заранее спасибо за ответы

Снимок.PNG

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Если вы видите что в одной процедуре кружки есть, а в другой нет - это значит что этот код (который без кружка) не скомпилирован и в данном не используется.
Говоря по другому, вы не можете эту процедуру продебажить потому что ее никто не вызывает (ни вы, ни сам компонент).

В данном случае - это не глюк)

Ссылка на комментарий
  • 0
1 час назад, Barbanel сказал:

потому что ее никто не вызывает

C этим понятно, но 

 

1 час назад, Barbanel сказал:

это значит что этот код (который без кружка) не скомпилирован

не понятно, означает ли это что компилятор сам определяет какие процедуры и переменные из компонента  используются и только их компилирует?   

Ссылка на комментарий
  • 0
4 минуты назад, GASCHE сказал:

компилятор сам определяет какие процедуры и переменные из компонента  используются и только их компилирует

Именно!

Ссылка на комментарий
  • 0
3 часа назад, Barbanel сказал:

это значит что этот код (который без кружка) не скомпилирован и в данном не используется

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

Условно, вот код

 Stream:=TStringStream.Create;
 form1.IdHTTP1.URL.Host:='192.168.0.16';
 form1.IdHTTP1.URL.Port:='554';
 form1.IdHTTP1.URL.Username:='admin';
 form1.IdHTTP1.URL.Password:='admin';
 form1.IdHTTP1.URL.Protocol:='rtsp';
 form1.IdHTTP1.Options('rtsp://admin:admin@192.168.0.16:554/live/ch00_0',Stream);
 Memo1.Lines.Add(Stream.DataString);
 Stream.Free;

Я хочу посмотреть, как выполняется запрос OPTIONS. Тыкаю в него мышкой с Ctrl, попадаю в модуль idHTTP

 

procedure TIdCustomHTTP.Options(AURL: string; AResponseContent: TStream);
begin
  DoRequest(Id_HTTPMethodOptions, AURL, nil, AResponseContent, []);
end;

И на DoRequest breakpoint не ставится. Соответственно внутри  DoRequest тоже некуда ставить точки остановки.

Ссылка на комментарий
  • 0

Возможно есть еще одна перегруженная процедура .Options
Проверил, их две. Какая именно вам нужна?

Далее, Build Configurations - Debug или Release?
В настройках проекта/компилятора, Use Debug DCU - True или False?

Ссылка на комментарий
  • 0

Они отличаются лишь возможностью задать кодировку стрима.

Мне вообще нужна процедура DoRequest, на нее ссылаются и одна и вторая процедуры.

Конфигурация Debug.

Настройки DEbug на скрине. 

Снимок.PNG

Изменено пользователем gonzales
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...