glist.c: нет такого файла или каталога - PullRequest
1 голос
/ 10 июня 2010

У меня есть приложение c / gtk + и GList, которые заполнили три элемента, когда я пытаюсь запустить следующий код с gdb:

if (g_list_length(mw->img_list) > 0)
   printf(">0");
else
   printf("<0");

я вижу:

Программа получила сигнал SIGSEGV, Ошибка сегментации. [Переключение на тему 0xb73c4700 (LWP 7936)] IA__g_list_length (list = 0x6e6920) в glist.c: 767 767 glist.c: Нет такого файла или каталога. в glist.c

Что это?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 10 июня 2010

Это сбой в glib, возможно, из-за плохого указателя на список. Отладчик пытается загрузить исходный код, чтобы показать вам, где он упал, но не может его найти (возможно, потому, что вы просто связались с библиотекой, даже не имея под рукой исходного кода).

Используйте команду gdb up, чтобы перейти вверх в стеке вызовов, пока не дойдете до своего кода, и проверить аргумент, переданный функции g_list_length().

2 голосов
/ 10 июня 2010

Ваш отладчик пытается найти исходный код для GList, чтобы помочь вам отладить проблему. Как правило, у вас не будет установлен источник. Вам нужно будет установить пакеты отладки или какой-либо другой источник.

Если вы работаете в системе Fedora, debuginfo-install glib2 сделает это. В Debian или Ubuntu может быть пакет для этого, который может заканчиваться на -dbg?

0 голосов
/ 10 июня 2010

Похоже, что он пытается найти (на вашем жестком диске) то, что не существует. Это весь код?

...