- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个段错误发生在我运行的时候:
alignarray *aligns = g_ptr_array_sized_new(N_DEFAULT_ALIGNS);
...,其中 alignarray
就是 GPtrArray
。
这条语句成功运行了好几次,然后突然失败,报“No source available for g_slice_alloc()
”。经过搜索,我尝试使用export G_SLICE=always-malloc
来禁用切片内存分配,但仍然失败...
还是因为我在代码的某处没有很好地处理内存?目前我的问题是我不知道在哪里调试。我尝试了 gdb 和 valgrind,但两者都无济于事。
最佳答案
很奇怪设置G_SLICE=always-malloc
还是出现这个问题。切片分配器是一种通过为大小相似的操作重用内存来避免分配内存开销的方法。
如果您分配 100 个 8 字节长的东西(比如 32 位上的 2 个指针),请释放它们并分配更多,然后您将重用相同的内存。重要的警告是,您必须确保使用切片分配器函数释放使用切片分配器分配的内存 - 直接通过 g_slice_free
或通过类似 g_object_unref
的方式间接检查你的代码表明你没有使用 g_free
GPtrArray
的其他实例(或类似大小的东西)
您可以使用 valgrind 识别错误释放或损坏发生的位置。使用 valgrind 时,您必须设置G_SLICE=always-malloc
关于c - GLIB 段错误 : No source available for "g_slice_alloc() ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278347/
我正在调用一个包含以下几行的函数: void call_system_command(const char *command_params) { GString *cmd = g_string
我正在 gtk+ 2.0 和 gtksourceview 2.0 中编写一个文本编辑器作为学习 C 的方式。当我尝试打开一个恰好位于 sshfs 上的文件时,我遇到了段错误。这并不总是一个问题,所以我
这个段错误发生在我运行的时候: alignarray *aligns = g_ptr_array_sized_new(N_DEFAULT_ALIGNS); ...,其中 alignarray 就是 G
我是一名优秀的程序员,十分优秀!