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

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

Читать далее...

Для работы mod_performance с любым типом php(кроме dso) необходимо использовать расширение php: modperf_ext.so. Расширение доступно в исходниках mod_performance, а так же в репозитории:

echo -e "[repomanager-bayrepo_prod]
name=bayrepo repo on repo.brepo.ru
baseurl=https://repo.brepo.ru/repo/bayre...

Читать далее...

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

Имею, Arduino UNO, кстати, впервые приобретенное именно в амперке в рамках набора Матрешка Z. Ибо каждый раз покупать плату ардуино, если придет в голову очередная гениальная -сумасшедьшая идея сваять что-то на контроллере дороговато, зато купить просто Attiny или Atmega8 проще. Следовательно нужен прогррамматор. А чем ардуино не программатор?

Самую годную схему я нашел здесь. Я, как и автор статьи, оказался жмотом(да и самому поковыряться было интересно) и решил сделать сам. Вот как выглядит схема от автора:

Читать далее...

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

Сценарий 1

Интересный скрипт, позволяющий остановить выполнение программы в нужном месте и запустить gdb

Читать далее...

Попробую написать утилитку, которая бы отслеживала путь выполнения программы, не так подробно как ltrace, но все же существенно более быстро.

А так же попробую воспользоваться функциями.

1 Напишу функцию, которая аналогична indent, но с собственным алгоритмом формирования смещения:

function local_depth() {
    ind = ""
    for (i=depth[tid()];i>=0;i--){
        ind = sprintf("%s|", ind)
    }
    ind = ind . ">"
    return ind
}

Результат выполения функции - это строка отступа для текущего потока с учетом глубины вложенности. Т.е сведения о глубине хранятся в массиве depth с ключем tid(), т.е идентификатором текущего потока. Результат примерно выглядит так |||> или |||||||>

Читать далее...