Fwd: Segmentation fault in g_main_context_prepare()



Thanks Sebastien for fixing my problem.


---------- Forwarded message ----------
From: Sébastien Wilmet <sebastien wilmet gmail com>
Date: Sat, Mar 13, 2010 at 5:13 AM
Subject: Re: Segmentation fault in g_main_context_prepare()
To: hap 497 <hap497 gmail com>


2010/3/13 hap 497 <hap497 gmail com>
>
> Hi,
>
> I have a Gtk application. It runs when when I launch it at command
> prompt in a shell.
> But when I try to launch it from another C program, like this:
>
> int main( int argc, const char* argv[] )
> {
>    char *args[2] = { "testarg", 0 };
>    char *envp[1] = { 0 };
>    execve("/home/michael/MyGtkApp",args,envp);
> }
>
> My program crashes with this.
> Program received signal SIGSEGV, Segmentation fault.
> 0x007e5f4e in g_main_context_prepare () from /lib/libglib-2.0.so.0
> (gdb) bt
> #0  0x007e5f4e in g_main_context_prepare () from /lib/libglib-2.0.so.0
> #1  0x007e6351 in ?? () from /lib/libglib-2.0.so.0
> #2  0x007e6b9f in g_main_loop_run () from /lib/libglib-2.0.so.0
> #3  0x0041b419 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
> #4  0x08049191 in main (argc=1, argv=0xbffffed4)
>    at main.c:471
>
> Does anyone has any idea?
> _______________________________________________
> gtk-list mailing list
> gtk-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-list

 Hi,

args[0] must contain the binary.
And the last values of args and anvp must be NULL, but maybe it works
with 0 too.
So try this:

int main( int argc, const char* argv[] )
{
   char *args[2] = { "/home/michael/MyGtkApp", "testarg", NULL };
   char *envp[1] = { NULL };
   execve("/home/michael/MyGtkApp",args,envp);
}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]