
John
10.10.2018
08:03:07
Первая же ссылка

Evgeniy
10.10.2018
08:03:24

Google

Evgeniy
10.10.2018
08:04:37

John
10.10.2018
08:05:53
Да
https://www.ostechnix.com/how-to-check-laptop-battery-status-in-terminal-in-linux/

Evgeniy
10.10.2018
08:07:48

Alexey
10.10.2018
08:19:26
В любом случае решение будет платформозависимым, потому как основывается на API операционки
Но абстрагироваться не проблема

Ilia
10.10.2018
08:28:13

Evgeniy
10.10.2018
08:28:37

Vlad
10.10.2018
08:37:19
хай, сорри что сюда пишу, есть ли группа pro.android ?

Alex
10.10.2018
08:50:38
Народ, не подскажете можно ли valgrind заставить логгировать все аллогации/деалокации? И если нельзя - то есть какой-нибудь другой санитайзер для этого?

Sergey
10.10.2018
09:04:08
http://valgrind.org/docs/manual/ms-manual.html

Stolyarchuk
10.10.2018
09:10:34

Google

Alex
10.10.2018
09:12:44
А зачем?
Возник очень странный баг, который связан с использованием памяти, которая была удалена ранее, но позже на той же памяти был выделен другой объект (а указатель, после удаления занулен не был). Из за объема кода очень тяжело статически найти это место.
Точнее это одно из предположений.

Aidar
10.10.2018
09:13:09
Валгринд фолсит же
Асан кстати по дефолту выплюнет коллстек аллокации, деаллокации и доступа при ошибке

Alex
10.10.2018
09:48:01
Асан кстати по дефолту выплюнет коллстек аллокации, деаллокации и доступа при ошибке
Так у меня получается, что бинарно все хорошо, доступа к неинициализированной памяти не происходит. Просто эта память используется как другой тип данных. (полиморфизм через void * в C++ - это очень больно, но с легаси ничего не поделаешь) Я просто хочу залоггировать абсолютно все аллокации и деалокации, чтобы потом, при краше найти место удаления определенного адреса.
С ASAN - проблема. Компилятор у нас gcc 4.4.7. Перенос на новый компилятор (gcc 7) ломает многие штуки (хоть и процесс переноса активен как никогда)

Aidar
10.10.2018
09:48:47
У вас там уб со всех щелей если чтото ломается

Alex
10.10.2018
09:49:45
Естественно, у нас почти весь код в УБ. Но с этим, к сожалению, ничего особо не поделаешь. Проект огромен, на поддержке только я.

Aidar
10.10.2018
09:51:08
Земля пухом

Alexander
10.10.2018
09:53:30

Ivan
10.10.2018
09:57:19
> С ASAN - проблема. Компилятор у нас gcc 4.4.7. Перенос на новый компилятор (gcc 7) ломает многие штуки (хоть и процесс переноса активен как никогда)
А перейти на компилятор постарее, где есть ASAN не будет ли проще?

Kitsu
10.10.2018
09:58:52

Alex
10.10.2018
09:58:54

Ilia
10.10.2018
10:00:05

Alex
10.10.2018
10:00:20

Ilia
10.10.2018
10:01:18
Ну валгринд должен ловить такое, по идее, если только это воспроизводится и если чтобы воспроизвести НЕ нужно очень долго что-то считать.

Ivan
10.10.2018
10:02:05

Stolyarchuk
10.10.2018
10:03:10
Имхо, у тех кто пишет на си маллок должен быть в мозгах

Ilia
10.10.2018
10:03:24

Alex
10.10.2018
10:04:00

Google

Ilia
10.10.2018
10:04:01

Alex
10.10.2018
10:04:16

Ivan
10.10.2018
10:04:43

Alex
10.10.2018
10:05:12
Ну это как раз нормально
Не нормально в коде наблюдать когда, из за ошибки кодера, память выделенная new удаляется с помощью free. А если все распределено - то да, все ок.

Ivan
10.10.2018
10:07:12

yuri
10.10.2018
10:07:27
сейчас и new/delete моветон

Alex
10.10.2018
10:11:47
Я набросал небольшой пример ошибки, которая воспроизводится на gcc 4.4, сейчас выложу на pastebin. valgrind говорил правильные вещи, но в неправильных местах, к сожалению.

Sergey
10.10.2018
10:13:48

Alex
10.10.2018
10:15:10
Пример кода:
https://pastebin.com/aycknueT
Чем собирал, результат выполнения и результат дефолтного тула valgrind:
https://pastebin.com/fjKQFP32
Massif, кстати, почему-то не пишет вызовы delete, но пишет вызовы new

Nik
10.10.2018
13:10:38
https://habr.com/post/425873/
Каковы шансы что вся эта благодать будет добавлена в ближайшие стандарты?

ed
10.10.2018
13:12:00

Дед Пегас
10.10.2018
13:14:03
В C++20147

Igor
10.10.2018
13:14:03

Alexey
10.10.2018
13:14:49
Слово "рефлексия" должна быть для С++ в стоплисте

Nik
10.10.2018
13:14:56

Alexey
10.10.2018
13:15:03
Потому что требует от компилятора то, что деградирует производительность

Google

Igor
10.10.2018
13:17:47

Alexey
10.10.2018
13:18:14
на размер скомпиллированного файла

/dev
10.10.2018
13:18:35

Alexey
10.10.2018
13:19:10
если кому-то понадобятся литеральные значения
то, что написано выше - это не совсем рефлексия. Это просто метаинформация на этапе компилляции. Концепты.

Igor
10.10.2018
13:20:24
ну как бы соль в том, что всё требуемое компилятор и так знает - нужно просто разрешить программисту смотреть на это знаемое

Alexey
10.10.2018
13:20:45
и навесить кастомную логику, ага

Igor
10.10.2018
13:20:49
про то чтобы в рантайме перечислять доступные в классе методы речь вроде бы не идёт

Ilia
10.10.2018
13:20:51

Alexey
10.10.2018
13:23:00
Назовём своё понятие словом, которое во всём мире означает смежное, но другое понятие, и пускай весь мир задолбается в попытках понять, что же мы имеем в виду

Ilia
10.10.2018
13:24:58

Alexey
10.10.2018
13:25:39
ООП и рефлексия ортогональны

Побитый
10.10.2018
13:26:38

Alexey
10.10.2018
13:26:45
получить имя и харакреристики шаблонного аргумента свободной функции - это рефлексия или нет?

Igor
10.10.2018
13:27:44
звучит как то, чего ожидаешь при наличии рефлексии

Побитый
10.10.2018
13:28:04
Она и есть.

Alexey
10.10.2018
13:28:09
и ни слова про ООП

Побитый
10.10.2018
13:28:32

Alexey
10.10.2018
13:28:44

Igor
10.10.2018
13:28:49

Google

Побитый
10.10.2018
13:29:03
.
Он имел ввиду что не надо на другие языки смотреть в этом плане
Мол раз в Джаве нет компайл тайм рефлексии, то её не может быть в принципе
А не то бедные джависты не поймут нас...

Alexey
10.10.2018
13:29:51
говоря о рефлексии, речь идёт о получении сущности, содержащей описание другой сущности
type traits - это тоже рефлексия в какой-то степени
и тоже компайл-тайм