Отладка приложений



              

Требования к TraceSrv


Сначала сформулируем цели проектирования TraceSrv, потому что это вообще лучший способ понять, что именно должна выполнять любая программа. Итак:

1. TraceSrv должна быть совместима с общими языками программирования, включая, как минимум, C++, Visual Basic, Borland Delphi, Visual Basic for Applications, Java, Jscript и VBScript.

2. TraceSrv должна быть очень проста для использования внутри языка программирования.

3. TraceSrv должна всегда выполняться так, чтобы любое приложение могло в любой момент соединяться с ней.

4. Операторы трассировки программы, которая выполняется на нескольких машинах, должны направлять свои результаты в один каталог (файл).

5. Приложения просмотра трасс (trace viewer applications) должны видеть строки трасс от нескольких машин одновременно.

6. Должны быть доступны следующие операции обработки необязательных параметров (опций) трассировочных строк:

• добавление (в строку трассировки) префикса со временем получения строки;

• добавление префикса с номером строки;

• добавление префикса с идентификатором (ID) процесса, который послал строку трассировки;

• добавление в конец записи трассы символов возврата каретки и перевода строки, если необходимо;

• посылать предложения трассировки через основной отладчик, где выполняется процесс TraceSrv.

7. Если хотя бы один из параметров TraceSrv, перечисленных в п. 6 изменяется, все активные программы просмотра трасс должны быть уведомлены, для того чтобы все эти программы (даже на других машинах) были скоординированы с текущими опциями.

На первый взгляд, требования к TraceSrv могут показаться чрезмерно завышенными из-за необходимости многоязычного программирования и работы в сети. Я предполагал, что можно переадресовать многоязычную поддержку простой динамически компонуемой библиотеке (DLL), которую мог бы загружать кто угодно. Поскольку я — прежде всего системный программист, а не Web-разработчик, то сказалось незнание языков VBScript и Java. В частности, при ближайшем знакомстве с VBScript я понял, что никакие хакер-ские трюки не заставят VBScript напрямую вызывать DLL.


Содержание    Вперед