This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Crash in g_file_monitor on 32-bit Cygwin
- From: Ken Brown <kbrown at cornell dot edu>
- To: cygwin <cygwin at cygwin dot com>
- Date: Wed, 25 Jun 2014 22:17:15 -0400
- Subject: Crash in g_file_monitor on 32-bit Cygwin
- Authentication-results: sourceware.org; auth=none
This is a followup to https://cygwin.com/ml/cygwin/2014-06/msg00324.html, from which I extracted the following test case:
$ cat gfile-test.c
#include <stdio.h>
#include <gio/gio.h>
void
gfile_add_watch (const char *file)
{
GFile *gfile = g_file_new_for_path (file);
GFileMonitor *monitor;
GFileMonitorFlags gflags = G_FILE_MONITOR_NONE;
monitor = g_file_monitor (gfile, gflags, NULL, NULL);
if (! monitor)
printf ("Can't watch file %s\n", file);
else
printf ("Watching file %s\n", file);
}
int
main ()
{
const char *file = "gfile-test.c";
gfile_add_watch (file);
}
$ gcc -g -O0 -o gfile-test $(pkg-config --cflags gio-2.0) gfile-test.c $(pkg-config --libs gio-2.0)
In the 64-bit case, this behaves as expected:
$ ./gfile-test.exe
Watching file gfile-test.c
In the 32-bit case, however, it crashes. Running it under gdb shows that the call to g_file_monitor leads to a SEGV, but I can't tell exactly where; when I try to single step through the Glib code, I eventually hit an assertion violation in gdb. strace shows lots of exceptions, but I can't make much sense out of it otherwise.
Ken
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple