powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
25 сообщений из 62, страница 2 из 3
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38033552
FxCop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это наподобие FxCop в мире шарпа только под паскаль?

Помню, как первый раз скормил свою сборку FxCop'у, глаза повылазили от количества предложений что-то улучшить
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38033963
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не работал раньше с FxCop. Сейчас посмотрел на Википедии, похоже у них подход немного другой. Я анализирую исходные коды, а они компилированный объектный код.
Предупреждений действительно много выдается. Пытаюсь сократить, оставив только нужное
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38034153
FxCop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AKdominatorЯ анализирую исходные коды, а они компилированный объектный код.Ну дык, дотнет такой дотнет, код свой не защитишь, считай исходники отдал
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38054114
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выпустил новую версию программы CodeVerifier - 0.4

Список изменений:
Добавлен тест "Деструктор не содержит в себе inherited". Отсутствие inherited в деструкторе означает, что не будет вызван деструктор предка - это может приводить к утечкам памяти ли неправильной работе программы.

Добавлен тест "Проверка расположения компонентов друг относительно друга". Он проверяет небольшие сдвиги компонентов одного типа друг относительно друга.

Добавлен тест "Поиск создания Exception'ов без ключевого слова raise". Отсутствие ключевого слова raise перед созданием исключения может означать, что исключение не будет возбуждено, выполнение программы не прервется, а созданный объект исключения останется висеть в памяти.

Скачать можно здесь
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38054188
Фотография Yed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominator,

Спасибо. Может Вы отдельную ветку создадите, для удобства?
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38054189
Фотография Yed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominator,

Спасибо. Может Вы отдельную ветку создадите, для удобства?
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38055067
inherited Destroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
inherited Destroy - неправильно отрабатывает
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38055122
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YedСпасибо. Может Вы отдельную ветку создадите, для удобства?
Я наверное лучше блог заведу.

inherited Destroyinherited Destroy - неправильно отрабатывает
А что неправильно? Можете пример привести?
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38055215
inherited Destroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AKdominatorА что неправильно? Можете пример привести?

Если в деструкторе написано не просто inherited, а inherited Destroy, то выдается сообщение, что в деструкторе не указан inherited. А он есть.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38055266
inherited Destroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну или вот

Код: pascal
1.
2.
3.
4.
5.
6.
if True then
begin
 ...
  raise
    Exception.Create('bla-bla-bla');
end




Если Exception.Create не находится на одной строке с raise, матюкается на использование Exception без raise
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38055402
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
inherited DestroyЕсли в деструкторе написано не просто inherited, а inherited Destroy, то выдается сообщение, что в деструкторе не указан inherited. А он есть.
Это скорее всего не из-за того, что написан Destroy, я делал, чтобы такие случаи учитывались. Наверное парсер неправильно определил где заканчивается деструктор. Можете привести пример содержимого деструктора?

inherited DestroyНу или вот

Код: pascal
1.
2.
3.
4.
5.
6.
if True then
begin
 ...
  raise
    Exception.Create('bla-bla-bla');
end




Если Exception.Create не находится на одной строке с raise, матюкается на использование Exception без raise
Тоже связано с хреновым парсингом. Попробую прикрутить Castalia Delphi Parser, должно стать лучше.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38055860
inherited Destroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AKdominator Можете привести пример содержимого деструктора?

Код: pascal
1.
2.
3.
4.
destructor TSomeClass.Destroy;
begin
	inherited Destroy;
end;
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38056269
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
inherited Destroy
Код: pascal
1.
2.
3.
4.
destructor TSomeClass.Destroy;
begin
	inherited Destroy;
end;


Тут перед inherited TAB стоит, из-за этого не работало. Спасибо. Исправил.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38175295
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выпустил новую версию 0.5
Изменения в новой версии:
Добавлен тест "Поиск некорректного создания объектов". Он находит ошибки типа "VarName := VarName.Create", а также создание объектов, которые никому не присваиваются. Возможны ложные срабатывания, например, при вызове Create у record'ов, у потоков и у объектов, владелец которых сам передается конструктор.

Добавлен тест "Проверка того, что после после then, do и т.д. нет нескольких значимых строчек, выровненных по одному уровню". Для корректной работы теста нужно, чтобы код был оформлен в стандартном стиле Delphi.

Добавлен тест "Проверяет, чтобы в функции Format и подобных, количество параметров в строке совпадало с количеством передаваемых параметров."

В нескольких тестах устранены ложные срабатывания.

Исправлены ошибки, выявленные в работе программы.

Теперь информацию о выходе новых версий и о других изменениях буду выкладывать в блоге http://ak-coder.blogspot.ru/] http://ak-coder.blogspot.ru/
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38175361
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominatorПроверка того, что после после then, do и т.д. нет нескольких значимых строчек, выровненных по одному уровню"Это весьма полезно. Еще один тест - после then и do не стоит точка с запятой. Когда-то такой код
Код: pascal
1.
2.
3.
4.
if ... then;
begin
  ..........
end;

стоил мне больших нервов
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38176140
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, такой тест тоже есть. Тоже напарывался на такую ошибку :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826292
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то на долго забросил проект CodeVerifier'а. Но вот появилось время заняться им опять.

Изменения в версии 0.6:
- Добавлен тест "Проверка правильности использования except в транзакциях".
- Добавлен тест "Проверка отсутствия Exit внутри try ... Commit...; except".
- Добавлен тест "Поиск неиспользуемых процедур и функций" он ищет процедуры и функции, описанные в implementation части и не используемые ниже.
- Добавлен тест "Поиск неиспользуемых переменных" он ищет переменные, описанные в implementation части и не встречающиеся ниже.
- Добавлен тест "Проверка наличия const или out модификатора у String аргумента процедур и функций".
- Добавлен тест "Поиск вызова Create не от типа, а от переменой (тип определяется по формальным признакам вроде префикса "T")".
- Добавлен тест "Возможно, вместо изменения массива через SetLength можно изменить его через Delete"
- Добавлен тест "Проверка на соответствие параметров компонентов форм".
- Теперь после проверки в списке тестов показывается сколько было найдено ошибок в конкретном тесте. При щелчке по тесту показываются отчеты именно этого теста.
- Доработаны некоторые существующие тесты.
- Исправлены ошибки, выявленные в работе программы.

Новую версию можно скачать здесь
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826299
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominator,

вообще непонятно как работает. Файлы из указываемого каталога не видит.
Написал вручную A := A; , никаких предупреждений нет
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826305
shonli95
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2,

оптимизатор сам вырежет такую конструкцию, так как это бессмысленно в любом случае
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826320
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shonli95asutp2,

оптимизатор сам вырежет такую конструкцию, так как это бессмысленно в любом случае

1. Смысл может быть, если A - property, хотя от такого лучше избавляться.
2. Скорее всего, должны были написать что-то другое, но ошиблись - предупреждение об этом может быть очень полезным.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826330
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вообще никаких предупреждений не выдалось. что я сделал не так? это вопрос к автору
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826349
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064,

Т.е. если я добавлю пару страниц комментариев, эта Peganza не среагирует?
А если я кусок процедуры перенёс в другую процедуру/метод или вообще в новый юнит вставил?
Тоже молча проглотит? Тогда в топку эту пеганцу
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826376
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator,

Я не знаком с пеганзой, но задачи которые Вы описали, совершенно не относятся к статическому анализу, а пеганза, как я понял, и есть статический анализатор: примерно то, что дельфи выдает в качества ворнингов, только более "хитрый".
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826415
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asutp2AKdominator,

вообще непонятно как работает. Файлы из указываемого каталога не видит.
Написал вручную A := A; , никаких предупреждений нет

Конкретно при проверке на равенство левой и правой частей неравенства делается так:
1) отбрасываются все комментарии в файле.
2) в каждой строке проверяемого файла ищется первое вхождение ":=".
3) если нашлось, и строка заканчивается на ";", тогда берется подстрока слева от присваивания и делается ей trim
потом берется подстрока справа от присваивания без учета последнего символа и делается ей trim
4) полученные подстроки сравниваются. Если одинаковые, то заносятся в отчет.

Я думаю проблема могла быть? если после точки с запятой были пробелы. Сейчас сделал чтобы для проверяемой строки тоже сразу делался trim. Так что теперь такого быть не должно.


asutp2так вообще никаких предупреждений не выдалось. что я сделал не так? это вопрос к автору
Возможно в вашем коде нет ничего такого, что могла бы найти программа :)
Да, еще после окончания проверки, в левом списке с тестами, в скобках показывается сколько подозрительных мест найдено конкретным тестом, если все по нулям, то значит ничего не нашлось. Если не ноль, тогда можно выбрать этот тест и будет показано в каких файлах сработала проверка.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826689
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрел. хорошо, как для фришного. с хотелками есть смысл обращаться?
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]