discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Mixing X and GNUstep


From: Raffael Herzog
Subject: Re: Mixing X and GNUstep
Date: Sun, 13 Jul 2003 14:57:34 +0200

On 2003-07-12 20:02:36 +0200 David Ayers <d.ayers@inode.at> wrote:

This is rather strange. It did finish the NSLog(@"NOT document based"); after which it merely has to return NO; yet it takes relatively long before it logs the event.

I had the impression that it logs immediately, but if you say so... :) I'll use printf();flush() in the future.


Does line 136 of NSDocumentController.m correspond to the return NO; or is it the beginning of another iteration before it logs the bundle? (There seem to be mutliple calls to isDocumentBasedApplicaion).

It corresponds to the line

NSDictionary *dict = [bundle infoDictionary];

According to the log, bundle is not nil, but the method call segfaults at line #177 of sendmsg.c, in objc_msg_lookup. That's the line:

result = sarray_get_safe (receiver->class_pointer->dtable, (sidx)op->sel_id);

Transscript from gdb after the segfault:

(gdb) frame
#0 0x4064bd92 in objc_msg_lookup (receiver=0x818d1d0, op=0x403c0768) at sendmsg.c:177
177           result = sarray_get_safe (receiver->class_pointer->dtable,
(gdb) print receiver
$2 = 0x818d1d0
(gdb) print receiver->class_pointer
$3 = (struct objc_class *) 0xdeadface
(gdb) print "LOL!"
$4 = "LOL!"
(gdb) print receiver->class_pointer->dtable
Cannot access memory at address 0xdeadfaee   <==== AHA!
(gdb) print op
$5 = 0x403c0768
(gdb) print op->sel_id
$6 = (void *) 0x1c0030
(gdb)


I think maybe you should use another compiler.

After apt-get upgrade gcc-3.2:

$ gcc-3.2 --version
gcc-3.2 (GCC) 3.2.3 20030415 (Debian prerelease)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc-3.0 --version
3.0.4
$

The same thing with both compilers... :(

It all works fine as long as I don't start Xine. Maybe it's important that Xine creates several threads (using POSIX threads, just like my GNUstep installation)?


cu & thanks,
 Raffi

--
 The difference between theory and practice is that in theory, there is
                no difference, but in practice, there is.

Raffael Herzog - herzog@raffael.ch - http://www.raffael.ch - ICQ #67961355





reply via email to

[Prev in Thread] Current Thread [Next in Thread]