The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"undertaker 1.0 - анализатор корректности блоков Си-препроцес..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от opennews (ok) on 30-Янв-11, 23:13 
В списке рассылки разработчиков Linux-ядра представлен (https://lkml.org/lkml/2011/1/27/127) инструментарий  undertaker (http://vamos.informatik.uni-erlangen.de/trac/undertaker), созданный на базе исследовательского проекта VAMOS (http://www4.informatik.uni-erlangen.de/Research/VAMOS/) и предназначенный для выявление проблем с использованием директив препроцессора в исходных текстах с Linux-ядром. Undertaker выполняет статический анализ кода и позволяет определить такие проблемы, как некорректное включение или выключение условных блоков препроцессора, не соответствующих заданной конфигурации (Kconfig).

Наглядно оценить результаты проверки Linux-ядра 2.6.38-rc1 можно на данной странице (http://www4.informatik.uni-erlangen.de/Research/VAMOS/linux-.../).


URL: https://lkml.org/lkml/2011/1/27/127
Новость: http://www.opennet.ru/opennews/art.shtml?num=29429

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +8 +/
Сообщение от pavlinux (ok) on 30-Янв-11, 23:13 
http://www4.informatik.uni-erlangen.de/Research/VAMOS/linux-...
537 строка

#ifdef CONFIG_PCI_MMCONFIG
    else if (!strcmp(str, "nommconf")) {
        pci_probe &= ~PCI_PROBE_MMCONF;
        return NULL;
    }
    else if (!strcmp(str, "check_enable_amd_mmconf")) {
        pci_probe |= PCI_CHECK_ENABLE_AMD_MMCONF;
        return NULL;
    }
#endif

Это оно считает не корректно?

А по-моему, если CONFIG_PCI_MMCONFIG в ядре нету, то и сравнивать не надо (strcmp)
и снимать флаг PCI_PROBE_MMCONF или добавлять PCI_CHECK_ENABLE_AMD_MMCONF,
чтоб потом PCI проверяло то, чего нет. :-/  

----

За то я нашёл другой косяк :),
там же на 20-ой строке:
  
unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | PCI_PROBE_MMCONF;

Причем пофиг, есть или нет CONFIG_PCI_MMCONFIG

---
Порадовало вот это


/* Define this to allow debugging output */
#undef IPCONFIG_DEBUG

#ifdef IPCONFIG_DEBUG
#define DBG(x) printk x
....

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 30-Янв-11, 23:47 
Так держать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +1 +/
Сообщение от pavlinux (ok) on 31-Янв-11, 00:05 
> Так держать.

undertaker.cpp: В функции ‘int main(int, char**)’:
undertaker.cpp:346:49: предупреждение: из-за ограниченности диапазона типа данных, результат сравнения всегда ложь
undertaker.cpp:346:72: предупреждение: из-за ограниченности диапазона типа данных, результат сравнения всегда ложь

:-)

Это млин, какая-то курсовая работа студней Универа Santa Catarina из Бразилии,
где много диких абизян.  

int threads = 1;
...
threads = strtol(optarg, (char **)0, 10);

strtol - переводиться как String To Long, у ниха threads = int    


--- undertaker/undertaker.cpp   2011-01-31 00:14:46.713000046 +0300
+++ undertaker/undertaker.cpp   2011-01-31 00:13:49.622000068 +0300
@@ -314,7 +314,7 @@
     char *worklist = NULL;
     char *whitelist = NULL;

-    int threads = 1;
+    long int threads = 1;
     std::list<std::string> models;
     std::string main_model = "x86";
     /* Default is dead/undead analysis */


И ЭТИ ЛЮДИ ЗАНИМАЮТСЯ АНАЛИЗОМ КАЧЕСТВА КОДА ЯДРА ..... :)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  –1 +/
Сообщение от cmp (ok) on 31-Янв-11, 05:10 
А чему удивляться, корпасты же рулят, нормальных проектов по пальцам перещитать, либо студентики проги недоделки клепают, либо корпоративные гиганты поекты открывают (или не открывают), такие что на 10Гб система уже не лезет, зато wma в mp3 конвертнуть нечем.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +2 +/
Сообщение от EuPhobos (ok) on 31-Янв-11, 07:50 
> зато wma в mp3 конвертнуть нечем

Используй ffmpeg, Люк

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +1 +/
Сообщение от fr0ster (ok) on 31-Янв-11, 09:56 
Вот именно, половина проектов пишется студентами, потому как имея чуть больший опыт, легко находится существующее решение проблемы и не изобретается очередной велосипед. А большая часть проектов в мире это таки велосипеды разной степени свежести.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 31-Янв-11, 10:47 
Ваша правда.

Только сколько Вы можете назвать законченных проектов. Законченных и поддерживаемых, а не заброшенных. Большенство выходят за рамки первоначального функционала, разбухают как на дрожжах, грузят систему "дополнительными возможностями" так, что на основные ресурсов не хватает, вот и пишут.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от fr0ster (ok) on 31-Янв-11, 10:55 
> Ваша правда.
> Только сколько Вы можете назвать законченных проектов. Законченных и поддерживаемых, а
> не заброшенных. Большенство выходят за рамки первоначального функционала, разбухают как
> на дрожжах, грузят систему "дополнительными возможностями" так, что на основные ресурсов
> не хватает, вот и пишут.

Ни одного. Таких не бывает в принципе. Проекты развиваются по тем же законам, что и любая система. Пока проект нужен разработчику, проект будет развиваться и поддерживаться. как только интерес разработчика угасает, проект ничто не спасет. И все характеристики типа "на дрожжах, грузят систему" субъективны.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 31-Янв-11, 11:16 
Хм.. интересная позиция, то есть по-вашему, проект не может быть подхвачен кем-то другим?
или разработчики не могут умеренно расширять функционал.. Ядро линухи, наглядный пример того, что могут.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от fr0ster (ok) on 31-Янв-11, 11:19 
> Хм.. интересная позиция, то есть по-вашему, проект не может быть подхвачен кем-то
> другим?
> или разработчики не могут умеренно расширять функционал.. Ядро линухи, наглядный пример
> того, что могут.

Вы считаете, что разработчик это тот кто начал проект? Те кто подхватят, точно так же проходят по статье "разработчик". Насчет "неумеренно расширять", утверждение спорное, если функционал расширяется, то разрабам это нужно зачем-то. без причины и кошка не мяукнет :)

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 31-Янв-11, 11:29 
> без причины и кошка не мяукнет :)

Больные на голову кошки, бывают. И разрабы по большей части люди, со свойственной склонностью к ошибкам, им манагер сказал они сделали.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от fr0ster (ok) on 31-Янв-11, 11:32 
>> без причины и кошка не мяукнет :)
> Больные на голову кошки, бывают. И разрабы по большей части люди, со
> свойственной склонностью к ошибкам, им манагер сказал они сделали.

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

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 31-Янв-11, 11:57 
Ну почему же только ему, мне как юзеру тоже важно, я как ни как учился его софтом пользоваться, привыкал к нему, а он что, взял и кинул, или мне админу его софтину по по юзерам раскидай, их обучи, а он возьми да и забей...
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от fr0ster (ok) on 31-Янв-11, 12:01 
> Ну почему же только ему, мне как юзеру тоже важно, я как
> ни как учился его софтом пользоваться, привыкал к нему, а он
> что, взял и кинул, или мне админу его софтину по по
> юзерам раскидай, их обучи, а он возьми да и забей...

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

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

18. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 31-Янв-11, 12:22 
Переводом справки?)) и условие разрабам ставить?)) да-да, они послушают.

Развитием, дажем третьей части, того чем пользуюсь заниматься не реально. А клоню к необходимости жесткой стандартизации, и формирования базисов.

В свое время протокол TCP/IP был принят стандартом не сразу, но без долгих раздумий, и сколько лет уже им пользуются и менять не торопятся, но чем выше ровень, тем среднестатистическая продолжительность жизни проекта меньше. Это правильно что ли?

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

19. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от fr0ster (ok) on 31-Янв-11, 12:27 
> Переводом справки?)) и условие разрабам ставить?)) да-да, они послушают.

А еще можно поучаствовать в оплате разрабских трудодней.

> Развитием, дажем третьей части, того чем пользуюсь заниматься не реально. А клоню
> к необходимости жесткой стандартизации, и формирования базисов.

Поучаствовать в финансировании разработки нужного лично тебе большого ума и опыта не нужно.

> В свое время протокол TCP/IP был принят стандартом не сразу, но без
> долгих раздумий, и сколько лет уже им пользуются и менять не
> торопятся, но чем выше ровень, тем среднестатистическая продолжительность жизни проекта
> меньше. Это правильно что ли?

В те времена было проще принимать судьбоносные решения, решающих было меньше. А сейчас думают количество перейдет в качество, только коммунизма все так же нет :)

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 31-Янв-11, 12:57 
> В те времена было проще принимать судьбоносные решения, решающих было меньше. А сейчас думают количество перейдет в качество, только коммунизма все так же нет :)

Да причем тут... Задолбали просто всякие со своими аймудами, и медведы которые их пиарят, и внедряют инновационые технологии, и переводят все и вся в цифру, а по факту имеем сайты не работающие ни с чем кроме ие, либо с голым html и
<br> как единственным средством разметки.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

21. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от fr0ster (ok) on 31-Янв-11, 13:19 
>> В те времена было проще принимать судьбоносные решения, решающих было меньше. А сейчас думают количество перейдет в качество, только коммунизма все так же нет :)
> Да причем тут... Задолбали просто всякие со своими аймудами, и медведы которые
> их пиарят, и внедряют инновационые технологии, и переводят все и вся
> в цифру, а по факту имеем сайты не работающие ни с
> чем кроме ие, либо с голым html и
>

как единственным средством разметки.

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

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от cmp (ok) on 31-Янв-11, 14:03 
То есть надо кого-то послать в самой грубой форме...кого? )))
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от fr0ster (ok) on 31-Янв-11, 14:07 
> То есть надо кого-то послать в самой грубой форме...кого? )))

Если у вас только вопрос возникает, то боюсь пошлют вас... дяди по стандартам с ойпадлами.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

17. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от Карбофос (ok) on 31-Янв-11, 12:15 
не прикапывайся к студентам! :) у них еще всё впереди
только конструктивная критика!
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

24. "undertaker 1.0 - анализатор корректности блоков Си-препроцес..."  +/
Сообщение от pavlinux (ok) on 31-Янв-11, 15:50 
> только конструктивная критика!

конструктивный патч показал.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

25. "очередной детсад от павлина"  +/
Сообщение от Вова on 01-Фев-11, 15:56 
>[оверквотинг удален]
> @@ -314,7 +314,7 @@
>      char *worklist = NULL;
>      char *whitelist = NULL;
> -    int threads = 1;
> +    long int threads = 1;
>      std::list<std::string> models;
>      std::string main_model = "x86";
>      /* Default is dead/undead analysis */
>
> И ЭТИ ЛЮДИ ЗАНИМАЮТСЯ АНАЛИЗОМ КАЧЕСТВА КОДА ЯДРА ..... :)

этот threads задаёт количество процессов, на которые надо распараллелить анализ ядра.
Если кто-то задаст значение, которое приведёт к переполнению, это уже само по себе некорректно.
Вполне нормальный кусок кода/

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

26. "очередной детсад от вантуса"  +/
Сообщение от pavlinux (ok) on 01-Фев-11, 17:13 
>[оверквотинг удален]
>>      char *worklist = NULL;
>>      char *whitelist = NULL;
>> -    int threads = 1;
>> +    long int threads = 1;
>>      std::list<std::string> models;
>>      std::string main_model = "x86";
>>      /* Default is dead/undead analysis */
>>
>> И ЭТИ ЛЮДИ ЗАНИМАЮТСЯ АНАЛИЗОМ КАЧЕСТВА КОДА ЯДРА ..... :)
> этот threads задаёт количество процессов, на которые надо распараллелить анализ ядра.

Пох...ю что он задаёт.

> Если кто-то задаст значение, которое приведёт к переполнению, это уже само по

Понятия "кто-то" в Си нету. Кода статистического анализа и расчёта вероятности не вижу.

> себе некорректно. Вполне нормальный кусок кода/

Функция возвращает long, значит присваиваться этот результат должен переменной
такого же типа, и нипёт, что "когда-то никогда что-то как-то" не случиться.

Надо было юзать atoi()

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

27. "очередной детсад от вантуса"  +/
Сообщение от Вова on 01-Фев-11, 17:28 
Нет, это очередная ошибка, излишний пуризм. Данная переменная будет иметь  значения от единицы (умолчательное значение) до нескольких десятков, проверка на ошибочную работу strtol - имеется, проверка на значение переменной - тоже имеется. Вывод - если кто-то задал количество процессов в 24145123525523323242342343422  - тот сам себе злобный буратино.
Займись чем-нибудь полезным?
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

30. "очередной детсад от вантуса"  +/
Сообщение от pavlinux (ok) on 01-Фев-11, 17:42 
> - если кто-то задал количество процессов в

Программы делаются в помощь людям, а не для развития геморроя.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

31. "ещё раз"  +/
Сообщение от Вова on 01-Фев-11, 17:58 
Сценарий геморроя в данном конкретном случае?
Предусмотрен опциональный параметр: количество параллельно работающих потоков, аналог make -jN; параметр читается, значение параметра после этого проверяется, есть умолчательное значение - 1.
Какой геморрой?
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

33. "ещё раз"  +/
Сообщение от pavlinux (ok) on 01-Фев-11, 18:29 
Даже не знаю как вам объяснить, зачем у самолётов запас прочности превышает
все возможные перегрузки в 2.5 раза, за идиота примите.


Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

34. "ещё раз"  +/
Сообщение от Вова on 01-Фев-11, 18:55 
> Даже не знаю как вам объяснить, зачем у самолётов запас прочности превышает
> все возможные перегрузки в 2.5 раза, за идиота примите.

код, который вы пытаетесь "исправить", корректно поддерживает задание максимум 2147483647 процессов, реально же будут испольвано максимум 20 процессов в случае обычной пользовательской системы, и, видимо, 32 000 процессов в случае использования 32000-ядерной системы. Запас прочности составляет от 100 миллионов до 100 тысяч раз.

Принимаю.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

35. "ещё раз"  +/
Сообщение от pavlinux (ok) on 01-Фев-11, 21:00 
Вы случаем в разработке PHP не участвуете?


Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

36. "уж лучше петросянить"  +/
Сообщение от Вова on 02-Фев-11, 09:46 
жги. Сразу два варианта остри - вариант на "да, я принимаю участие" и вариант "нет, не принимаю".

почитаю, может и посмеюсь.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

37. "очередной детсад от вантуса"  +/
Сообщение от nuclight email(ok) on 06-Фев-11, 18:06 
> Нет, это очередная ошибка, излишний пуризм. Данная переменная будет иметь  значения
> от единицы (умолчательное значение) до нескольких десятков, проверка на ошибочную работу

Соль в том, что этот проект как раз посвящен проверке качества и пуризма. А получается сапожник без сапог, хочется сказать авторам, "Врачу, исцелися сам".

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру