glist.c:没有这样的文件或目录

时间:2010-06-10 14:48:27

标签: gdb gtk2 segmentation-fault

我有c / gtk +应用程序和GList填充了三个元素,当我尝试使用gdb运行以下代码时:

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

我明白了:

编程接收信号SIGSEGV,分段故障。 [切换到线程0xb73c4700(LWP 7936)] 在glist.c:767的IA__g_list_length(list = 0x6e6920) 767 glist.c:没有这样的文件或目录。     在glist.c

这是什么?

谢谢。

3 个答案:

答案 0 :(得分:2)

这是glib中的崩溃,可能是因为你把一个坏指针交给了一个列表。调试器尝试加载源代码以显示它崩溃的位置,但找不到它(可能是因为你只是链接到lib,甚至没有源代码)。

使用gdb up命令在调用堆栈中向上步,直到找到代码,然后检查传递给g_list_length()函数的参数。

答案 1 :(得分:2)

您的调试器正在尝试查找GList的源代码,以帮助您调试问题。通常,您不会安装源。您需要安装调试包或某种源。

如果您使用的是Fedora系统,debuginfo-install glib2将会这样做。在Debian或Ubuntu上,可能有一个包,可能以-dbg结尾?

答案 2 :(得分:0)

看起来它试图找到一些不存在的东西(在你的硬盘上)。这就是所有的代码吗?

相关问题