Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
233 / 99 / 27
Регистрация: 20.03.2014
Сообщений: 304

Как использовать valgrind или отловить утечки в нативном коде?

27.01.2018, 15:10. Показов 1003. Ответов 0

Студворк — интернет-сервис помощи студентам
Всем привет!

Исходные данные:

Приложение на 95+% состоящее из нативного кода, из которых большая часть на Qt. Проект собирается по хардкору с помощью CMake (нет никаких проектов для Android Studio). Устройство Oneplus 3T, Oreo, rooted.
Нужно отловить утечки памяти и ресурсов.
Сам не являюсь тру андроид программистом, жизнь заставила =)

Что я пробовал:

1. https://android.googlesource.c... /README.md, раздел For app developers, но при старте моего приложения с такой конфигурацией девайс тупо перезагружается...

2. Valgrind.
- Собрал тул версии 3.13.0.
- Закинул в /data/local/Inst/ на устройстве и сделал chmod -R 777 /data/local/Inst/
- Закинул скрипт /data/local/start_valgrind.sh (разумеется сделал ему chmod 777) следующего содержания:
Bash
1
2
3
4
5
6
7
8
9
10
#!/system/bin/sh
 
PACKAGE="com.example.hellojni"
 
# Memcheck tool
VGPARAMS='-v --error-limit=no --trace-children=yes --log-file=/sdcard/valgrind.log.%p --tool=memcheck --leak-check=full --show-reachable=yes'
 
export TMPDIR=/data/data/$PACKAGE
 
exec /data/local/Inst/bin/valgrind $VGPARAMS $*
- Далее выполнил:
Bash
1
adb shell setprop wrap.com.example.hellojni "logwrapper /data/local/start_valgrind.sh"
- И запускаю свое приложение:
Bash
1
adb shell am start -a android.intent.action.MAIN -n com.example.hellojni/.MainActivity
В ответ получаю такое:
Bash
1
2
3
4
5
  logwrapper  W  type=1400 audit(0.0:73): avc: denied { execute } for name="start_valgrind.sh" dev="dm-1" ino=654102 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:system_data_file:s0 tcla ss=file permissive=0
 
                     E  executing /data/local/start_valgrind.sh failed: Permission denied
  start_valgrind.sh  I  executing /data/local/start_valgrind.sh failed: Permission denied
                     I  start_valgrind.sh terminated by exit(255)
Есть идеи как дать logwrapper права на выполнение скрипта?
Может кто-нибудь подскажет альтернативный способ поиска утечек в нативном коде?

Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2018, 15:10
Ответы с готовыми решениями:

Утечки памяти в qt приложения как отловить
Использую в программе большой размерности матрицы. Делаю их динамически так quint8 ** Table1; for(int i=0;i<10000;i++) { ...

Как использовать mysql без ORM в нативном виде?
сабж я написал в гугле Ruby On Ralis mysql Ruby On Ralis примеры mysql Ruby On Ralis работа с mysql в гугле ничего не...

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.01.2018, 15:10
Помогаю со студенческими работами здесь

Как отловить IndexError в декомпилированном коде плагина?
Помогите с решением проблемы IndexError: list index out of range, в путоне с не сильно шарю. Вот код. Как я понял что то за границы...

Продемонстрировать работу с указателем на функцию в нативном коде C++ и работу с функцией–делегатом
Добрый день)Я начинающий программист, расскажите как реализовать , такой примерчик: Продемонстрировать работу с указателем на функцию в...

Как отловить вводимый в IE текст. Ошибки в коде препятствуют загрузке проекта
VB 6.0 (Винд XP HE). Надо отловить вводимый в ИЕ текст. Нашёл такой пример: Сделал стандартный проект, но он не хочет запускаться....

Оставить все как есть || использовать парсер xml || или использовать struct
Собственно имеется код... #include <io.h> #include <string> #include <vector> #include <fstream> #include <iomanip> #include...

Как в VC++2008 использовать Framewok 2.0 или не использовать вообще??
интересует консольное приложение - по умолчанию .Net3.5, и поменять нельзя, бо соответствующий ListBox.Enable = False


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru