LINUX.ORG.RU

Это GTK решето что ли? Или я криворукий зело?

 , , ,


0

1
==29320== 4,176 (512 direct, 3,664 indirect) bytes in 1 blocks are definitely lost in loss record 21,097 of 21,732
==29320==    at 0x4C2C29E: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29320==    by 0x9B8FCFA: ??? (in /usr/lib/libfontconfig.so.1.9.0)
==29320==    by 0x9B904C9: ??? (in /usr/lib/libfontconfig.so.1.9.0)
==29320==    by 0x9B907EF: FcPatternAddInteger (in /usr/lib/libfontconfig.so.1.9.0)
==29320==    by 0x6D85281: ??? (in /usr/lib/libcairo.so.2.11400.2)
==29320==    by 0x643844F: ??? (in /usr/lib/libpangocairo-1.0.so.0.3600.8)
==29320==    by 0x9967871: ??? (in /usr/lib/libpangoft2-1.0.so.0.3600.8)
==29320==    by 0x996646C: ??? (in /usr/lib/libpangoft2-1.0.so.0.3600.8)
==29320==    by 0x665915E: ??? (in /usr/lib/libpango-1.0.so.0.3600.8)
==29320==    by 0x665C9CE: pango_layout_line_get_extents (in /usr/lib/libpango-1.0.so.0.3600.8)
==29320==    by 0x665EBEE: ??? (in /usr/lib/libpango-1.0.so.0.3600.8)
==29320==    by 0x665EE99: ??? (in /usr/lib/libpango-1.0.so.0.3600.8)
==29320==    by 0x5A75B33: gtk_label_get_preferred_layout_size (gtklabel.c:3661)
==29320==    by 0x5A75B33: gtk_label_get_preferred_size (gtklabel.c:3718)
==29320==    by 0x5A76084: gtk_label_get_preferred_height_and_baseline_for_width (gtklabel.c:3923)
==29320==    by 0x5B14013: gtk_widget_query_size_for_orientation (gtksizerequest.c:214)
==29320==    by 0x5B1426E: gtk_widget_compute_size_for_orientation (gtksizerequest.c:390)
==29320==    by 0x5B1454D: gtk_widget_get_preferred_height_and_baseline_for_width (gtksizerequest.c:639)
==29320==    by 0x59314C0: gtk_alignment_get_preferred_size (gtkalignment.c:662)
==29320==    by 0x59314FA: gtk_alignment_get_preferred_height_and_baseline_for_width (gtkalignment.c:737)
==29320==    by 0x5B14013: gtk_widget_query_size_for_orientation (gtksizerequest.c:214)

Хотя я нигде не переопределял gtk_widget_get_preferred_*...

★★

Последнее исправление: Athor (всего исправлений: 1)
Ответ на: комментарий от CYB3R

Это вывод valgrind с моей GTK проги. В ней много меток генерится, и я не знаю, от какой этот вывод. Версия GTK - 3.16.

Athor ★★
() автор топика
Ответ на: комментарий от CYB3R

Уверен что не вылетает? Потеребонькай сильнее.

Убрать в ~/.config/gtk-3.0/bookmarks

GTK кстати какой версии? На второй версии оно крешится вместе с программой.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Уверен что не вылетает? Потеребонькай сильнее.

Да, теребонькал довольно сильно.

Убрать в ~/.config/gtk-3.0/bookmarks

Спасибо!

GTK кстати какой версии? На второй версии оно крешится вместе с программой.

В Firefox Ctrl+O. Должно быть, вторая версия.

CYB3R ★★★★★
()
Ответ на: комментарий от EXL

Если все правильно сделал — не подтверждаю. libgtk2.0-0, Debian 6.0.10, Gnome 2.30.2. Да, говно мамонта. Но вопрос не в том, а в этом. Ну ты понял ))

deep-purple ★★★★★
()
Ответ на: комментарий от Athor

В моей тулзе тоже лезет куча неосвобожденной памяти. Если запускать через

_DEBUG=resident-modules valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=20 --log-file=vgdump your-program
, то почти на 4mb лог

Cactus64k
()
Ответ на: комментарий от Cactus64k

у меня лог аж 100 мб занимает, хз почему. И все в основном или в сигналах, или в размере:(

Athor ★★
() автор топика
Ответ на: комментарий от Cactus64k

Запустил именно с этими аргументами, а не с моими - файл получился в 7 мб.

На что ругается:

==19790==    by 0x5398314: gtk_label_init (gtklabel.c:1341)
==19790==    by 0x5D84506: g_type_create_instance (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D683B6: g_object_new_internal (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D6A154: g_object_new_valist (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D6A47B: g_object_new (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x53C5E3E: gtk_menu_item_ensure_label (gtkmenuitem.c:2512)
==19790==    by 0x53C5E88: gtk_real_menu_item_get_label (gtkmenuitem.c:1881)
==19790==    by 0x53D05E7: gtk_model_menu_item_set_text (gtkmodelmenuitem.c:246)
==19790==    by 0x53D05E7: gtk_model_menu_item_set_property (gtkmodelmenuitem.c:447)
==19790==    by 0x5D6B1FA: g_object_set_property (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D5EC05: on_source_notify (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D5FF51: g_object_bind_property_full (in /usr/lib/libgobject-2.0.so.0.4400.0)
и
==19790==    at 0x4C2C080: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==19790==    by 0x5FF26F1: g_malloc0 (in /usr/lib/libglib-2.0.so.0.4400.0)
==19790==    by 0x5D620A4: g_closure_new_simple (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D63561: g_cclosure_new (in /usr/lib/libgobject-2.0.so.0.4400.0)
==19790==    by 0x5D7AD00: g_signal_connect_data (in /usr/lib/libgobject-2.0.so.0.4400.0)
в разных вариациях.

Athor ★★
() автор топика
Ответ на: комментарий от Cactus64k

Может, опять переписать все на C c блекджеком и ш... g_autoptr и G_DECLARE_DERIVABLE_TYPE? Но тогда потеряется удобство привязки к DBus + совместимость с GLib < 2.44.

Athor ★★
() автор топика
Ответ на: комментарий от Cactus64k

Из-за чего я вообще затеял все это с Valgrind - потому что прога течет, и течет серьезно. Она может после 20 пересозданий окна увеличить объем потребляемой памяти аж в 2 раза:(

Athor ★★
() автор топика
Ответ на: комментарий от Cactus64k

Зачем мне переписывать код с Vala на плюсы? Смысл? Потерять биндинги? А что течет, я так и не пойму. Ну не может одно окно отожрать 6 МБ памяти и не освободить, несмотря на то, что оно destroyed, т.е. вызов g_object_unref на нем вызовет только ругань в консоли.

Athor ★★
() автор топика

Почти в 100% говнотыковских программулек я вижу какие-то матюки при работе. А то и вылеты. Хуже говнотыка разве что культи...

anonymous
()
Ответ на: комментарий от i_gnatenko_brain

Неоднократно постил уже на ЛОРе, но вот. Растарить и сделать cmake . && make && sudo make install, или dpkg-buildpackage, или make package_rpm в зависимости от дистра.

Athor ★★
() автор топика
Ответ на: комментарий от anonymous

Конкурс: найди Эдди по тупняку в треде.

Stil ★★★★★
()
Ответ на: комментарий от deep-purple

JavaFX или QML (но тут опять Qt).

Короче, нету. Пиши свою библиотеку, работающую через OpenGL, как Eddy_Em завещал.

EXL ★★★★★
()
Ответ на: комментарий от EXL

*скрипя зубами* да, жизнь — боль. А мне еще и кастомные элементы запиливать... Может вообще тупо взять xlib и понаделать активных областей с подстилками из картинок?

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Не ня. Пришествие вяленого не переживет. А по поводу гуйни - можно на Clutter и St запилить (это C часть гномошелли и корицы)

Athor ★★
() автор топика
Ответ на: комментарий от Cactus64k

Ага. Лучше стоит подумать, а не бага ли это в GTK, что менюшка так утекает? Но не суть. Течет в 2 местах - меню и сигналы. Как фиксить - хз.

Athor ★★
() автор топика
Ответ на: комментарий от Athor

Веб-морду пиши, если тебе вообще никак без гуя. Или в OpenGL нарисуй. Всяко проще, красивше и без костылей.

Больше вариантов нет. Крайняк — motif какой-нибудь.

anonymous
()
Ответ на: комментарий от Cactus64k

Можно и supp файлами погонять... Но боюсь, тогда совсем утечки не увижу:-)

Athor ★★
() автор топика
Ответ на: комментарий от Athor

Mixxx так и был сделан. Вот только навая версия иначе. А вот насчет веб-гуя идея нормальная, но гемрная — интерактив будет уже не тот.

deep-purple ★★★★★
()

gtk как то через зад управляет памятью, так что его ругает valgrind, потому самим valgrind пользоваться становится нереально, увы. Это не означает что программа течет

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Проблема как раз-таки в том, что прога течет. А где - вот кто бы знал. И отловить даже с Valgrind нереально.

Athor ★★
() автор топика

А еще, если GTK подсунуть какой-нибудь dmalloc, оно резво падает лапками вверх. Во всяких cocoa, на которые они равняются, такого нет.

anonymous
()

Пиши на плюсах, очпрошу.

anonymous
()
Ответ на: комментарий от peregrine

htop запустил на пару часиков и запомнил начальное значение и конечное. Так вот, они сильно различаются что-то.

Athor ★★
() автор топика
Ответ на: комментарий от Athor

Ты мой гитхаб/сосфорж посмотри. Почти все на вебмордах. Только один велосипед я, дурень, на говнотыке начал когда-то писать. Теперь мучаюсь: ведь надо будет дописывать. Ну я и дебил...

anonymous
()
Ответ на: комментарий от anonymous

Пипец, не знал, что Eddy_Em забанили. Вот подонки, и как обычно ни за что.

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