[Lazarus] Need testers (gtk2)

Juha Manninen juha.manninen62 at gmail.com
Sun Oct 24 15:32:52 CEST 2010


On Sunday 24 October 2010 15:24:04 zeljko wrote:
> Hi,
> I've commited an important patch today (r 27829) , about gtk2 main loop
> iterations.
> Now it uses g_main_context instead of g_main which is deprecated from
> gtk2-2.2.
> This patch improves main loop, but also now PostMessage() works fine for
> messages from another threads.
> 
> *** Gtk2 Laz/LCL must be build with -dUSE_GTK_MAIN_CONTEXT_ITERATION ***
> to get this new code work.

In my short tests it works well. I didn't notice difference for older versions.
I will try PostMessage later.

I just happened to debug a GTK2 program. It is the thtmlport package from CCR. 
It looks like a useful package but it crashes with GTK2. This bug seems to be 
extremely difficult to find. It shows this:

(lazarus:2791): Gdk-CRITICAL **: gdk_window_get_state: assertion 
`GDK_IS_WINDOW (window)' failed
[DBGTGT] Gdk-ERROR **: The program 'framedem' received an X Window System 
error.
[DBGTGT] This probably reflects a bug in the program.
[DBGTGT] The error was 'BadMatch (invalid parameter attributes)'.
[DBGTGT]   (Details: serial 2256 error_code 8 request_code 62 minor_code 0)
[DBGTGT]   (Note to programmers: normally, X errors are reported 
asynchronously;
[DBGTGT]    that is, you will receive the error a while after causing it.
[DBGTGT]    To debug your program, run it with the --sync command line
[DBGTGT]    option to change this behavior. You can then get a meaningful
[DBGTGT]    backtrace from your debugger if you break on the gdk_x_error() 
function.)
[DBGTGT] aborting...


Question: how can I give  --sync parameter for the program when I run it under 
gdb? I tried:

 $ gdb 'framedem --sync'
which says:
 framedem --sync: No such file or directory.

and:

 $ gdb framedem --sync
which says:
 gdb: unrecognized option '--sync'
 Use `gdb --help' for a complete list of options.

I can give the parameter in Lazarus "Run Parameters..." but then the whole 
Lazarus freezes. It doesn't take mouse clicks and must be killed.

Juha




More information about the Lazarus mailing list