Перейти к содержанию
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 пользователей онлайн

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