[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: Lost Pointer when adding GTK+ to an application
- From: James Scott Jr <skoona verizon net>
- To: Diego Rivera <rive17 gmail com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: Lost Pointer when adding GTK+ to an application
- Date: Wed, 07 May 2008 22:55:50 -0400
On Wed, 2008-05-07 at 20:33 -0600, Diego Rivera wrote:
> Hi! I am not exactly new to GTK+, however I have come across a problem i
> have no explanation for, and I'll be glad if someone could point me towards
> a possible solution.
>
> I am currently developing an application that uses various algorithms for
> sequence alignment in biological applications (DNA, RNA, Proteins and so
> on). This application is mainly for scientific purposes.
>
> The core algorithms are already running fine as a console application in a
> very stable version. I am working in adding some graphical interface to the
> program using GTK+. So, I built a little Window that asks for the different
> parameters and makes a call to the already defined functions in the console
> application, which are indeed stable. However, when making the call to the
> algorithm with GTK+ running, some of the pointers in my data structures get
> lost, and I just get a Segmentation Fault.
>
> While trying to debug this weird behavior, I have narrowed the problem to
> the fact of having a window running.
>
> Right now, I just have a main that creates a GtkWindow with a GtkButton, and
> the callback of the button calls the stable routine of the console
> application using some "hard-wired" parameters. I have made tests and the
> console application gives the correct answer for those parameters. However,
> when calling the routine from the callback, Segmentation Fault is the only
> result I have been able to get.
>
> I have tried with different versions of GTK+ and the outcome is persistent.
>
> The data structure of the console application looks something like this:
>
> typedef struct{
> int length;
> char* seq;
> }sequence_t;
>
> typedef struct{
> int n;
> int m;
> int** table;
> }table_t;
>
> typedef struct{
> sequence_t* vp;
> sequence_t* wp;
> table_t* table;
> int scoring;
> int result;
> }alignment_t;
>
> Using gdb i have found that the Segmentation Fault occurs at some point when
> accesing the table from the alignment.
>
> I believe i have made no memory errors in my console application, since it
> runs ok every time. However, i haven't seen the correct output from my GTK
> application.
>
> Is there any hint that you could give me in order to correct the error?
>
How did you add the GTK component to the existing console app; are they
one process or two?
Your segfault suggest that they are two separate processes. In which
case attempting to share memory elements will cause a segfault every
time no matter how correct and hard-coded the structures.
You may need to consider designing in and using some type of IPC
(Inter-Process Communications) like a named-pipe, shared-memory, socket
communications, memory queue, etc. Something designed to communicate
between two active processes.
James,
> Thanks
> - Diego Rivera -
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]