Вопрос

Я долгое время Delphi Dev и в прошлом я использую третий инструмент для регистрации и отладки во время разработки (под названием Smart Convect), однако теперь, когда я обновился на Delphi XE, я хочу попробовать и использовать IDE для отладки.

Мой вопрос, учитывая функцию, как

procedure MyFunction;
var
    str : string;
begin
    str := 'Foo';
    //Debug, show value of str?
    str := AnotherFunction(str);
    //Debug, show value of str?
end;

Как я могу отлаживать и получить значение ул., не делая глупые вещей, таких как ShowMessage (STR);

Если есть видео где-то (или статья), то я более чем счастлив читать.

Есть ли способ просмотреть / выводить значение переменных.

Это было полезно?

Решение

Ну, Delphi Xe поставляется с кодовым ведомством, но я получаю чувство, что вы говорите о самом отладчике.

Если вы размещаете точку останова в рутину, он сломается до отладчика, когда он его бьет. Оттуда у вас есть локальная переменная панель и панель часов вдоль левой стороны IDE. Локальные переменные покажут ценность всех местных жителей, а часы позволяют настроить выражения, значение которых он будет отслеживать.

Вы также можете получить что-то похожее на часы, но с более подробной информацией (особенно для структурированных типов, таких как объекты) с использованием проверки (Alt-F5). Кроме того, оценка / изменение (Ctrl-F7) позволит вам ввести выражения и оценивать их. Это не так подробно, как осмотреть, но это дает вам гораздо больше гибкости.

Если вы ознакомитесь с этими инструментами, вы найдете отладку намного проще.

Другие советы

Если вы хотите использовать только отладчик IDE, то сделайте следующее:

  • Поместите точку останова где-нибудь
  • Щелкните правой кнопкой мыши по кругу BremPointr и выберите «Свойства точки останова ...»
  • Нажмите кнопку «Advanced», чтобы показать больше вариантов
  • Установите флажок «Перерыв»
  • Затем используйте «Move Message» и «Eval Expression», чтобы ввести значения трассировки

Такие сообщения будут отправлены на панель отладчика «Журнал событий». Щелкните правой кнопкой мыши на панели и выберите «Свойства». Там вы можете фильтровать («сообщения») / HiLight («цвета») Thrace Message, как вы усыпляете.

1) Вы можете использовать функцию outputeddebugstring для вывода строки для отладки окна

2) Вы можете использовать Codesite Express. Я рекомендую видео от КОДЕРЯТЬ 5. в качестве отправной точки для использования кода

Другие ответы все правильные.

Моя личная любимая техника (то же самое, что и ответ DA-Soft) - создать точку останова, которая регистрирует сообщение для журнала событий, содержащего значение, которое я хочу зарегистрирован, и на самом деле не «разбивает» (то есть выполнение продолжается Без вы попадаете на значок бега). Тогда каждый раз, когда достигнута линейка кода, я получаю мое сообщение и мои значения в журнале. Поскольку я могу вернуться и прочитать историю, а также увидеть текущие значения, я нахожу это более полезным, чем просто используя окно Water Debugger.

Но поскольку Delphi XE включает в себя кодовой задач, вы можете пройти далеко за рамки того, какую оценку экспрессии в точках останова делается для вас. Однако код требуется, чтобы вы изменили свой код, чтобы добавить некоторую регистрацию. Но это намного лучше, чем ящик сообщения.

Вы также можете использовать OutputDeBUGSTRING (PCHAR (S)), чтобы вывести любую строку в отладчик. Поскольку это может содержать все, что вы хотите, это очень хороший способ отлаживать, но не показывать вещи до конечного пользователя.

Во многих моих приложениях у меня есть специальный буфер трассировки, который является циркулярным (том, то есть удерживает только последние 500 или около того строк). Когда я вижу проблему, не только я получаю Traceback Stack, я также сохраню этот журнал трассировки в памяти, поэтому у меня есть некоторая история о том, что происходит непосредственно перед моей проблемой.

Вы также можете проверить Журнал 4 Delphi проект.

Я предпочитаю отладчик подсказки. После взлома до отладчика переместите вашу мышь на «STR» в любом месте в вашем коде, и вы увидите его текущее значение. Также вы можете выделить некоторые операторы мыши и оценить его. Например, выделите «другойфункцию (ул.)» И поместите ее на нее.

Ничего плохого ни в одном из других ответов, но я просто хотел добавить эти полезные функции.

procedure DebugString ( const s : string ) ; overload ;
begin
  {$IFDEF DEBUG}
  OutputDebugString ( PChar ( s ) ) ;
  {$ENDIF}
end ;

procedure DebugString ( const s : string ; args : array of const ) ; overload ;
begin
  {$IFDEF DEBUG}
  OutputDebugString ( PChar ( Format ( s , args ) ) ) ;
  {$ENDIF}
end ;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top