LINUX.ORG.RU

Покритикуйте либу логгинга памяти

 ,


1

4

https://github.com/codemeow/svadilfari - субж

Маскирует malloc/calloc/realloc/free с помощью макросов чтобы не менять синтаксис.

Можно переназначит стандартные системные функции чтобы юзать например какие-нибудь raspberry_malloc_ex()

Есть опции, можно включить например автозамену malloc на calloc и автовыход\авторепорт коллбеком в случае фейла

Есть система коллбеков на репорт ошибок

Можно получить инфу по каждому поинтеру - когда, в каком файле и на какой строке он был аллоцирован.

В случае необходимости можно сконвертить либовый поинтер в системный и заюзать какой-нибудь внешний free.

Юзает локи.

Либа с типами (bixi) юзает только один системный хэдер: <time.h>, остальное реализует сама. Может быть полезно на урезанных системах. Тот же хэдер использует svadilfari, кроме него используется <stddef.h> для size_t. Плюс используется <stdlib.h> для дефотного назначения malloc/calloc/realloc/free. Тестовая прога в комплекте использует <stdio.h> чтобы выводить на экран.

Можно: детектить лики, смотреть кто где много жрет, получать инфу о размере аллоцированного поинтера.

★★★★★

Ответ на: комментарий от i-rinat

Если ты можешь логировать каждый вызов malloc/free, не выжирая место

Кто говорит о постоянном принтинге? Я все время говорю о принтинге по запросу.

Не представляю, что за софт, о котором ты говоришь. Если собрать, скажем, nginx с отладкой, то при нормальной нагрузке он логами съест всё место на диске за десятки минут.

tk@pro1500:~/dd24/log/ctms$ ls -lh
total 170M
-rw-r--r-- 1 tk tk  27M 2017-05-26 11:13 ctms_command
-rw-r--r-- 1 tk tk 190K 2017-05-26 11:13 hall_0.log
-rw-r--r-- 1 tk tk  24M 2017-05-26 16:17 hall_17784.log
-rw-r--r-- 1 tk tk 1.3M 2017-05-23 04:40 hall_17784.log.1.gz
-rw-r--r-- 1 tk tk 1.3M 2017-05-15 04:40 hall_17784.log.2.gz
-rw-r--r-- 1 tk tk 1.3M 2017-05-07 04:40 hall_17784.log.3.gz
-rw-r--r-- 1 tk tk 1.3M 2017-04-29 04:40 hall_17784.log.4.gz
-rw-r--r-- 1 tk tk 1.3M 2017-04-21 04:40 hall_17784.log.5.gz
-rw-r--r-- 1 tk tk  24M 2017-05-26 16:17 hall_17785.log
-rw-r--r-- 1 tk tk 1.3M 2017-05-23 04:41 hall_17785.log.1.gz
-rw-r--r-- 1 tk tk 1.3M 2017-05-15 04:41 hall_17785.log.2.gz
-rw-r--r-- 1 tk tk 1.3M 2017-05-07 04:40 hall_17785.log.3.gz
-rw-r--r-- 1 tk tk 1.3M 2017-04-29 04:41 hall_17785.log.4.gz
-rw-r--r-- 1 tk tk 1.3M 2017-04-21 04:40 hall_17785.log.5.gz
-rw-r--r-- 1 tk tk  38M 2017-05-26 16:17 hall_7051.log
-rw-r--r-- 1 tk tk 1.4M 2017-05-21 04:40 hall_7051.log.1.gz
-rw-r--r-- 1 tk tk 1.4M 2017-05-13 04:40 hall_7051.log.2.gz
-rw-r--r-- 1 tk tk 1.4M 2017-05-05 04:40 hall_7051.log.3.gz
-rw-r--r-- 1 tk tk 1.5M 2017-04-27 04:40 hall_7051.log.4.gz
-rw-r--r-- 1 tk tk 1.4M 2017-04-20 04:40 hall_7051.log.5.gz
-rw-r--r-- 1 tk tk  31M 2017-05-26 16:17 hall_728.log
-rw-r--r-- 1 tk tk 1.3M 2017-05-22 04:40 hall_728.log.1.gz
-rw-r--r-- 1 tk tk 1.3M 2017-05-14 04:40 hall_728.log.2.gz
-rw-r--r-- 1 tk tk 1.3M 2017-05-06 04:40 hall_728.log.3.gz
-rw-r--r-- 1 tk tk 1.3M 2017-04-28 04:40 hall_728.log.4.gz
-rw-r--r-- 1 tk tk 1.3M 2017-04-20 04:40 hall_728.log.5.gz

Лог пишется несколькими потоками, каждые 15 секунд статусное сообщение:

tk@pro1500:~/dd24/log/ctms$ tail -n20 hall_17784.log
[2017-05-26 16:20:33] 
After preprocessor:
{
    'result' => {
        'splid' => '4b3bb3ee-1ddb-361c-8661-51034d84a698',
        'cplid' => '94b8ab4d-7bb0-4783-8e5a-507fcf5db6ea',
        'position' => '7788',
        'duration' => '8870',
        'status' => 'play',
        'api_up' => 1,
    },
    'hall_id' => 17784,
    'serial' => '273567',
    'devname' => 4,
    'marker' => 'Worker.pm & api_checker.pl step 2',
    'vendor' => 'Doremi',
    'devindex' => 10,
},

[2017-05-26 16:20:33] Processed Worker.pm & api_checker.pl step 2 for Doremi cinema DCP-2000 
Плюс каждый час туда пишется большой блок текста о всяких непотребствах что сейчас происходят. По датам файлов можете увидеть, сколько места оно занимает.

PPP328 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.