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

1. Есть ли аналоги этих программ? Лучше бесплатные и opensource :)

2. Есть ли в России фирмы, которые официально занимаются продажей этих программ?
Хочется немного переплатить, но упростить оформление покупки для бухгалтерии.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #33750291
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dp06 Peganza Pascal analyzer
Долго и успешно использую.
dp061. Есть ли аналоги этих программ? Лучше бесплатные и opensource :)
Аналог встречал, название не помню, но PAL лучше. Бесплатных не нашел, кроме Icarus'а той же Peganza.
dp062. Есть ли в России фирмы, которые официально занимаются продажей этих программ?
Скорее всего нет. Попробуйте обратиться в любую фирму продающую софт для программистов.

Удачи,
Дмитрий
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #33750373
dp06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Arefiev
dp062. Есть ли в России фирмы, которые официально занимаются продажей этих программ?
Скорее всего нет. Попробуйте обратиться в любую фирму продающую софт для программистов
Спасибо за ответ. Попробую обратиться, но сомневаюсь, что будет результат, т.к. нужна только 1 лицензия, а за $140(текущая цена PAL)+комиссионные они вряд ли захотят с этим возиться.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #33753728
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня был анонсирован open-source проект CodeWrench . Потенциал велик. На данный момент состояние скорее зачаточное, что понятно для версии 0.2.

Удачи,
Дмитрий
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #33753828
dp06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ссылку, уже закачал, буду смотреть.
p.s. оперативно вы за новостями следите :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #37742927
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry ArefievСегодня был анонсирован open-source проект CodeWrench . Потенциал велик. На данный момент состояние скорее зачаточное, что понятно для версии 0.2.

Удачи,
Дмитрий

Ссылка уже битая :(
проект наверное умер
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #37742934
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #37990973
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня было сделано несколько проверок кода, написанного на Delphi, решил оформить их в виде программки, вдруг кому-нибудь пригодится :)
Выложил здесь

P.S. Дизайном и оформлением не особо заморачивался.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #37991155
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominatorУ меня было сделано несколько проверок кода, написанного на Delphi, решил оформить их в виде программки, вдруг кому-нибудь пригодится :)
Выложил здесь

P.S. Дизайном и оформлением не особо заморачивался.
Прикольно. Особенно прикольно натравить на исходник Delphi.
Из багов: " to 0" ищет даже в комментариях :). Возможно, и другие проверки этим грешат.
Из фич:
1) таки выбор каталога стоит прикрутить;
2) стоит предусмотреть анти-чекер, например, вид комментария в строке а-ля
Код: pascal
1.
//[ANTI_CHECKER:DOUBLED_LINE] THIS LINE IS REALLY CORRECT! 


Иначе тяжело отсеивать новые из кучи ранее известных проблем, которые на поверку оказались идеальным кодом.
После чего можно:
а) или добавить ещё одну опцию, сброшенную по умолчанию: "Игнорировать анти-чекер";
б) или добавить ещё один вид тестов: "Искать строки с анти-чекером".
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #37991162
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой2) стоит предусмотреть анти-чекер

...
После чего можно:
а) или добавить ещё одну опцию, сброшенную по умолчанию: "Игнорировать анти-чекер";
б) или добавить ещё один вид тестов: "Искать строки с анти-чекером".
Ибо первое правило "улучшения": "новая фича хороша тогда, когда ей можно не пользоваться (или отключить)" (с)
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #37991690
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойИз багов: " to 0" ищет даже в комментариях :). Возможно, и другие проверки этим грешат.

Да, сейчас комментарии не игнорятся во всех проверках.

АнатоЛой1) таки выбор каталога стоит прикрутить;

Хорошая идея.

АнатоЛой2) стоит предусмотреть анти-чекер, например, вид комментария в строке а-ля
Код: pascal
1.
//[ANTI_CHECKER:DOUBLED_LINE] THIS LINE IS REALLY CORRECT! 


Иначе тяжело отсеивать новые из кучи ранее известных проблем, которые на поверку оказались идеальным кодом.
После чего можно:
а) или добавить ещё одну опцию, сброшенную по умолчанию: "Игнорировать анти-чекер";
б) или добавить ещё один вид тестов: "Искать строки с анти-чекером".
У меня есть другая идея. Чтобы в программе можно было выбрать для игнорирования какое-нибудь сообщение, и чтобы программа запомнила эту строчку вместе с ближайшим окружением (например десять строк сверху и снизу от нее). При следующей проверке будет проверяться, если для какой-то ошибки строчка и ее окружение совпадает со списком игнорируемых, то не показывать эту ошибку.

Вообще у меня времени мало, чтобы этим заниматься. Может быть в выходные займусь.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #37991808
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominatorУ меня есть другая идея. Чтобы в программе можно было выбрать для игнорирования какое-нибудь сообщение, и чтобы программа запомнила эту строчку вместе с ближайшим окружением (например десять строк сверху и снизу от нее). При следующей проверке будет проверяться, если для какой-то ошибки строчка и ее окружение совпадает со списком игнорируемых, то не показывать эту ошибку.
С точки зрения анализа чужих исходников - хорошее решение.
В своих же лучше комментировать прямо в исходнике, раз уж есть возможность влиять на первоисточник проблемного места...
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38016133
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойИз багов: " to 0" ищет даже в комментариях :). Возможно, и другие проверки этим грешат.

Сделал, чтобы комментарии при проверке не учитывались

АнатоЛойИз фич:
1) таки выбор каталога стоит прикрутить;
Прикрутил :)

АнатоЛой2) стоит предусмотреть анти-чекер, например, вид комментария в строке а-ля
[src delphi]
//[ANTI_CHECKER:DOUBLED_LINE] THIS LINE IS REALLY CORRECT!

Анти-чекер пока не стал делать.

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

Вот только запустил и сразу виден мелкий недочет: как прочитать весь текст у чекбоксов? Ни хинта, ни сплиттера... :(

Далее: нумерация строк не совпадает, выдает номер следующей строки.

Одну ошибку таки нашёл: %в вместо %d.
Чем так плох sleep, на который он тоже ругается?

П.С. И эта... Выделения - это несколько из другой оперы.

Но идея хороша! Спасибо!
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38016558
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Натравил на AnyDAC:
1) "Пустая секция except". Если в секции стоит коментарий, например "// silent" или "// nothing",
то видать так оно и нужно. Нужна настройка - пустая без коментариев, пустая без кода.
2) Окно кода позволяет редактировать. Неплохо иметь возможность сохранить изменения.
3) "После пары строк идет точно такая же пара". Выдается, например на:
Код: pascal
1.
2.
3.
4.
5.
              {$ENDIF}
            {$ENDIF}
          {$ENDIF}
        {$ENDIF}
      {$ENDIF}


В данном случае IFDEF / ENDIF позволяет вложение. Ругаться на это точно не надо -
компилятор и так скажет. В большинстве остальных случаев срабатывания ложные.
Одно сообщение на сотню оказалось правильным :)
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38016593
Фотография Yed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Имена тестов нельзя полностью просмотреть
2. Орфография единицы измерения не понимает
3. Ложное срабатывание на двух одинаковых строках:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
      
BlockRead(f, one, 1); // пропускаем неясный байт ??
BlockRead(f, one, 1); // длина имени улицы
.........................
var
	PADDING: MD5Buffer = (
		$80, $00, $00, $00, $00, $00, $00, $00,
		$00, $00, $00, $00, $00, $00, $00, $00,
		$00, $00, $00, $00, $00, $00, $00, $00,


но в одном месте действительно нашел опечатку мою - стоят "begin begin" и в конце "end end" :)
4. Пустые except с комментариями, как сказали выше, не нужно считать ошибкой.

ну пока все, другие ошибки программа у меня не нашла.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38017880
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanВот только запустил и сразу виден мелкий недочет: как прочитать весь текст у чекбоксов? Ни хинта, ни сплиттера... :(
Согласен. Пожалуй сделаю сплиттер :)

wadmanДалее: нумерация строк не совпадает, выдает номер следующей строки.
Я у себя не замечал. Можно примерчик какой-нибудь?

wadmanЧем так плох sleep, на который он тоже ругается?
У нас некоторые товарищи ставят sleep просто для отладки, чтобы на них можно было брейкпоинты ставить, а потом забывают убрать. Поэтому и сделал, чтобы они искались.

wadmanП.С. И эта... Выделения - это несколько из другой оперы.
В смысле красным? Я делал по аналогии с Дельфой, она тоже красным выделяет ошибки.

wadmanНо идея хороша! Спасибо!
Пожалуйста :)

Dmitry ArefievНатравил на AnyDAC:
1) "Пустая секция except". Если в секции стоит коментарий, например "// silent" или "// nothing",
то видать так оно и нужно. Нужна настройка - пустая без коментариев, пустая без кода.
2) Окно кода позволяет редактировать. Неплохо иметь возможность сохранить изменения.
3) "После пары строк идет точно такая же пара". Выдается, например на:
Код: pascal
1.
2.
3.
4.
5.
              {$ENDIF}
            {$ENDIF}
          {$ENDIF}
        {$ENDIF}
      {$ENDIF}


В данном случае IFDEF / ENDIF позволяет вложение. Ругаться на это точно не надо -
компилятор и так скажет. В большинстве остальных случаев срабатывания ложные.
Одно сообщение на сотню оказалось правильным :)
Согласен. Насчет того, что много ложных срабатываний - это да. Я исключаю из проверки некоторые случаи, которые точно правильные, этот тоже добавлю. К сожалению все исключить не получится. Но я в наших проектах так нашел несколько ошибок.
Кстати, я не все проверки включил в публичную версию, просто там еще больше ложных срабатываний :)

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

В моем случае не понял литры (л.).
Вот еще слова и общепринятые сокращения, которые можно добавить в словарь:
н/д
банкомат
Автомагазин
Вкл.
Выкл.
Автомойка
Шиномонтаж
ОК
пикс.

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


AKdominatorВ смысле красным?
В смысле названия кнопки "Выделить все". Над этим (точнее над аналогичным названием кнопки) девушки ржали долго Заменить-бы на "Отметить" или на что-то подобное. Но это моя придирка, связанная с моим прошлым. :)
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38018056
Bitbucket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
даешь программу на Bitbucket !
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38018816
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YedВот еще слова и общепринятые сокращения, которые можно добавить в словарь:Имхо, правильнее было бы вынести словарь во внешний файл
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38019480
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YedAKdominatorА какие именно? Проверил 'кг', 'см', 'гр', 'м'. На них не ругается.
На остальные вопросы уже ответил.

В моем случае не понял литры (л.).
Вот еще слова и общепринятые сокращения, которые можно добавить в словарь:
н/д
банкомат
Автомагазин
Вкл.
Выкл.
Автомойка
Шиномонтаж
ОК
пикс.

Я брал за основу словарь OpenOffice, там таких слов нет, зато есть "банкомет" Я так понимаю надо делать, чтобы можно было самим добавлять слова в свой словарь.

wadmanAKdominatorЯ у себя не замечал. Можно примерчик какой-нибудь?
См. рисунок.
Чёта я ступил. Спасибо, исправлю.

wadmanВ смысле названия кнопки "Выделить все". Над этим (точнее над аналогичным названием кнопки) девушки ржали долго Заменить-бы на "Отметить" или на что-то подобное. Но это моя придирка, связанная с моим прошлым. :)
Не вижу тут ничего странного. Например, в uTorrent'е тоже есть кнопка "Выделить все". В принципе я не против переименования, только не знаю как обратную операцию назвать. "Разотметить", "Снять отметки" - как-то странно звучит.

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

использовать молчаливый toolbar :)
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38019565
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominatorВ принципе я не против переименования
Можно и не напрягаться по этому поводу, обычным пользователям программа вряд-ли понадобится.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #38033548
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выпустил новую версию. Скачать можно здесь
Всем спасибо за замечания! :)
...
Рейтинг: 0 / 0
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
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826708
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonпосмотрел. хорошо, как для фришного. с хотелками есть смысл обращаться?
Есть смысл. Что смогу - то сделаю :)
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826761
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominator2) в каждой строке проверяемого файла ищется первое вхождение ":=".
3) если нашлось, и строка заканчивается на ";", тогда берется подстрока слева от...


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

несколько мелких для начала:

хоткей (например - return) для перехода из отчета к месту бага, сейчас только даббл-клик, неудобно
какая-то кнопка + хоткей с открытием текущего исходника и строки прямо в delphi (надо поискать как, это как-то точно можно сделать, пеганза и эврикалог это умеют делать).
возможность редактирования в 'соотвествующем коде' есть, но сохранения нет, стоит дописать

по собственно детекции.

баг:
Код: pascal
1.
property IndentElse: boolean read fbIndentElse write fbIndentElse;


срабатывает правило для 'Else;' хотя не должно

было бы хорошо обнаруживать массивы, записи и строки, передаваемые без модификаторов const/var (довольно важная функция для оптимизации, многие исходники страдают)

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

Код: pascal
1.
2.
    destructor Destroy;
      override;



Еще удобнее было бы не жать 'Enter' (retrun), а просто при переходе вверх-вниз по списку найденных записей сразу синхронизировать место в исходниках.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826924
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На десятке без русской локали зависает при запуске. Загрузка процессора под 100%. После удаления словаря стартует нормально.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39827842
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x1ca4064Т.е. Вы не строите синтаксическое дерево?
Не строю.

makhaonAKdominator,
баг:
Код: pascal
1.
property IndentElse: boolean read fbIndentElse write fbIndentElse;


срабатывает правило для 'Else;' хотя не должно

Исправил.

makhaonЕще.
Баг, ложное срабатывание:

Код: pascal
1.
2.
    destructor Destroy;
      override;


Исправил.

makhaonЕще удобнее было бы не жать 'Enter' (retrun), а просто при переходе вверх-вниз по списку найденных записей сразу синхронизировать место в исходниках.
Сделал.

Kazantsev AlexeyНа десятке без русской локали зависает при запуске. Загрузка процессора под 100%. После удаления словаря стартует нормально.
Поменял кодировку словаря на Unicode, может быть поможет. Мне повторить зависание не удалось.

Остальное с ходу не получилось сделать.

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

Ложные детекты:

Часть case
Код: pascal
1.
2.
    'A' .. 'Z' : Addend := Ord(C) - (Ord('A') - 10);
    'a' .. 'z' : Addend := Ord(C) - (Ord('a') - 10);


- одинаковые строки

Часть константного массива
Код: pascal
1.
2.
   2, // $(var)
   2, // ${var}


- одинаковые строки

Начало декларации двухмерного константного массива
Код: pascal
1.
2.
3.
4.
     Multipliers : Array[TScale, TMagnitude] Of UInt64 =
      (
       (
        0,


- одинаковые строки (на скобки)

Вызов метода
Код: pascal
1.
FInstance.SetLength(0);


- предлагается заменить на "Arr := NIL;"

Декларация внешней функции
Код: pascal
1.
 Function SecRandomCopyBytes(rnd : SecRandomRef; count : LongWord; bytes : PByte) : Integer; CDecl; External libSecurity Name _PU + 'SecRandomCopyBytes';


- неиспользуемая переменная "rnd"

Декларация локального типа в процедуре
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Class Procedure...
 Type

  TSysPageFileInfo = Record

   NextEntryOffset : Cardinal;
   CurrentSize     : Cardinal;
   TotalUsed       : Cardinal;
   PeakUsed        : Cardinal;

   FileName        : Record

                      Length    : Word;
                      MaxLength : Word;
                      Buffer    : PWideChar;

                     End;

  End;


- неиспользуемые переменные (перечислено несколько полей)

Декларация переменной-записи
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Var
  InfoEx : Record

            dwLength                : LongWord;
            dwMemoryLoad            : LongWord;
            ullTotalPhys            : UInt64;
            ullAvailPhys            : UInt64;
            ullTotalPageFile        : UInt64;
            ullAvailPageFile        : UInt64;
            ullTotalVirtual         : UInt64;
            ullAvailVirtual         : UInt64;
            ullAvailExtendedVirtual : UInt64;

           End;


- неиспользуемые переменные (перечислено несколько полей)

Оператор выбора
Код: pascal
1.
2.
3.
4.
   Case AOperation Of

    doCopy  : _InitializeByCopy;
    doShare : _InitializeByShare;


- неиспользуемая переменная "doCopy" и "doShare"

Оператор выбора
Код: pascal
1.
2.
3.
4.
   Case MarkerPtr[0] Of

    '+' : _ParseOpenedSequence;
    '-' : _ParseClosedSequence;


- неиспользуемая переменная "'+'" и "'-'"

Реагирует на конструкторы типов если имя типа не начинается с T, даже на декларацию.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828394
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, не понимаю, как можно делать подобные тулзни не используя AST...
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828401
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

+1. Хотя, тому же FixInsight AST не особо помогает, там фолсов тоже куча, не таких глупых, но анализ там примитивный.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828466
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyХотя, тому же FixInsight AST не особо помогает, там фолсов тоже куча, не таких глупых, но анализ там примитивный.Я пользовался и пеганзой и фиксинсайтом: что-то находили, на чём-то лажали. К слову сказать, оба автора относительно оперативно фиксили те баги что я им присылал. Правда уже давно не слежу за развитием этих продуктов и не знаю как сейчас обстоят дела.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828502
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

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

попробовал, интересное решение, понаходилось парочка "ляпов".
на мой взгляд не хватает копирования имени модуля из отчёта.

новых версий не было?
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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