PowerBuilder эквивалентно Debug.WriteLine? - PullRequest
1 голос
/ 09 июля 2009

У меня есть проект PowerBuilder, который вызывает мою библиотеку классов .Net, доступную для COM. Я очень новичок в PowerBuilder и только начинаю поднимать его. Я хотел бы создать несколько простых тестов для своих COM-вызовов, и я искал довольно долгое время и не могу найти ничего похожего на методы VS Diagnostics.

Эта функция существует?

Большое спасибо!

Ответы [ 4 ]

4 голосов
/ 09 июля 2009

Вы можете зарегистрировать сообщение через API-интерфейс отладки Windows, а затем с помощью подходящего средства просмотра ваше сообщение будет видно.

См. Использование API отладки Windows из Powerbuilder

3 голосов
/ 11 июля 2009

Я предполагаю, что вы хотите записать пользовательские данные, а не только выполненные строки (что, к сожалению, все, что вы получаете от PBDEBUG; я всегда хотел, чтобы пользовательские данные записывались в трассировку PBDEBUG, но я никогда не мог убедить кого-нибудь в Sybase добавить это к продукту).

PFC

PFC предлагает сервис отладки, который делает это, но если вы еще не создали свое приложение с PFC, может потребоваться умеренное усилие для его адаптации к вашей инфраструктуре. Если у вас есть приложение на основе PFC, все, что вам нужно сделать, это

of_SetDebug (TRUE)

в событии pfc_Open Менеджера приложений (или в другом подходящем месте), затем начните вводить код с

IF IsValid (gnv_App.inv_Debug) THEN gnv_App.inv_Debug.of_Message (...)

Таким образом, вы можете просто удалить of_SetDebug (), чтобы отключить обмен сообщениями, без необходимости удалять код всех сообщений. (Хорошо, теоретически это немного замедлит ваше приложение, проверяя, все ли время IsValid ().) Я даже вставил код, чтобы включить службу отладки с параметром командной строки (что я не рассказать пользователям о). Таким образом, я могу выполнить этот стиль устранения неполадок на рабочих станциях конечных пользователей (при условии, что я ожидал данные, которые мне нужно записать).

Другое

Если я застрял с приложением, отличным от PFC, боюсь, что я обычно слишком тороплюсь (читай: слишком ленив), чтобы адаптировать службу отладки PFC, поэтому я просто создаю глобальную функцию, которая выполняет FileOpen FileWrite и FileClose для жестко заданного имени файла, в котором записывается сообщение, переданное в качестве параметра. Затем я загружаю свой код с вызовами этой функции. Теоретически вы можете сделать эту функцию пустой, когда пришло время ее развертывать, но вместо этого я обычно удаляю все вызовы.

2 голосов
/ 09 июля 2009

Вы можете использовать переключатель времени выполнения "/ pbdebug", который создает файл журнала. Кроме того, что вы должны вести собственную регистрацию, PB (IMO) общеизвестно сложно выполнить модульное тестирование.

0 голосов
/ 14 июля 2009

вы компилируете для цели .NET?

В этом случае вы сможете использовать функцию .NET:

#if defined PBDOTNET
   System.Diagnostics.Debug.WriteLine( .. )
#endif
...