![]() |
segmentation faild из-за gtk
(d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 371 (gdk_draw_line): assertion `GDK_IS_GC (gc)' failed
(d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 371 (gdk_draw_line): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 371 (gdk_draw_line): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 371 (gdk_draw_line): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkgc-x11.c: line 654 (gdk_gc_set_clip_rectangle): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkgc-x11.c: line 654 (gdk_gc_set_clip_rectangle): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 338 (gdk_draw_point): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 338 (gdk_draw_point): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 338 (gdk_draw_point): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkdraw.c: line 338 (gdk_draw_point): assertion `GDK_IS_GC (gc)' failed (d4x:19802): Gdk-CRITICAL **: file gdkgc-x11.c: line 654 (gdk_gc_set_clip_rectangle): assertion `GDK_IS_GC (gc)' failed Segmentation fault че делать то |
чегото не хватает?
сейчас нет линукса под рукой - точнее сказать не могу. Но в принципе assert'ы ставят для проверки обычно |
пересобери d4x.
:rolleyes: |
../config.h -O2 -g -pipe -march=i386 -mcpu=i686 -O2 -c -o prefs.o `test -f 'prefs.cc' || echo './'`prefs.cc
prefs.cc: In function `void d4x_prefs_search()': prefs.cc:813: error: `gtk_radio_menu_item_group' undeclared (first use this function) prefs.cc:813: error: (Each undeclared identifier is reported only once for each function it appears in.) prefs.cc: In function `void d4x_prefs_apply_tmp()': prefs.cc:1470: error: `gtk_radio_menu_item_group' undeclared (first use this function) make[3]: *** [prefs.o] Error 1 make[3]: Leaving directory `/usr/src/redhat/BUILD/d4x-2.4.1/main/face' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/src/redhat/BUILD/d4x-2.4.1/main' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/src/redhat/BUILD/d4x-2.4.1' make: *** [all] Error 2 ошибка: Неверный код возврата из /var/tmp/rpm-tmp.66418 (%build) Ошибки сборки пакетов: пользователь build не существует - используется root группа build не существует - используется root пользователь build не существует - используется root группа build не существует - используется root пользователь build не существует - используется root группа build не существует - используется root Неверный код возврата из /var/tmp/rpm-tmp.66418 (%build) [root@localhost Desktop]# Добавлено через 1 час и 31 минуту: segmentation fault вознкает только в gtk2 приложеня d4x изредко audacity gimp-1.3 вообще сдох подскажте что нужно из gtk2 библиотек перекомпилировать чтоб все работало а d4x несобирается Добавлено через 1 час и 12 минут: у кого никогда не возникал segmentation fault? какой дистр? |
Либо нет библиотек :
>prefs.cc:813: error: `gtk_radio_menu_item_group' undeclared (first use this >function) Либо непрописанны пути к ним. Что у тебя за дистр ? segmentation fault - это не от дистра обычно зависит, а от проги. Очень вероятно, что ты уже устанавливал собраный бинарник(например из rpm), а нужных либ нет, т.к. d4x не собирается. Отсюда - он и вываливается. Попробуй поставить все что связанно с gtk из дистра. Может поможет :) удачи. |
Извините, а что вообще значит ошибка "segmentation fault"? (я так понимаю это распределение памяти!?)
|
Пример:
Массив на char [10] элементов, ты запихиваешь туда 20-ть. Например 'B'. Стек выглядит так: [наш массив 10 элементов][EIP] EIP (4 байта) - так называемый адрес возврата. Когда мы записали 20-ть элементов, буффер переполнился -> т.е. значение EIP перепишется, в нем теперь будет находится 0x42424242. Теперь когда функция попытается вернуть управление, EIP востанавливается из стека и управление передастся коду по адрессу 0x42424242 -> отсюда и появляется segmentation fault. Посмотри в нете, там очень много на эту тему написанно :) void.ru - есть статьи по написанию эксплоитов и там очень доходчиво все объясняется ;) |
Цитата:
|
Функция передает управление в ту часть памяти, куда не имеет досту, ялро увидев это, отсекает.
|
2ppiitt: спасибо за доходчивое объяснение, держи "пятерку"
|
| Часовой пояс GMT +4, время: 15:54. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.