Tag: gstring

g_slice_alloc中的段错误

我正在使用以下行调用函数: void call_system_command(const char *command_params) { GString *cmd = g_string_sized_new(1024); g_string_append_printf(cmd, “/bin/bash /path/to/my/script ‘%s'”, command_params); system(cmd->str); g_string_free(cmd, TRUE); } 我正在使用g_string_sized_new获得段错误。 来自gdb的Backtrace显示: (gdb) bt #0 0x000000320ce56264 in g_slice_alloc () from /lib64/libglib-2.0.so.0 #1 0x000000320ce5c3db in g_string_sized_new () from /lib64/libglib-2.0.so.0 …. 我已经尝试导出G_SLICE = always-malloc,因此不使用glib自己的分配器,而是使用malloc。 但问题仍然存在。 我仍然在g_slice_alloc中遇到段错误。 我也从多个线程调用此函数’call_system_command’。 这可能是个问题吗? 该函数是插件的一部分,每15分钟由cron调用。 每次执行插件时都不会发生段错误,但每3-4天就会发生一次。 有关进一步调试的任何指示都会有所帮助。 提前致谢。