On 25.08.2013 04:37, Lee, Seong-Gu wrote: > On 08/25/2013 05:57 AM, Riccardo Mottola wrote: >> Lee, Seong-Gu wrote: >>> 1) GWorkspace with non-fragile abi >>> Other usr applications (Gorm, SystemPreferences, etc.) work well except >>> GWorkspace when compiled with non-fragile abi. >> <...> >>> It seems to occur error when initializaing NSRect object with >>> NSZeroRect. However, same initialization code from other applications >>> did not make troubles. I cannot know whether NSStringDrawing.m in >>> gnustep-gui or GWorkspace source is wrong. >>> When NSZeroRect was commented out and gnustep-gui was re-compiled, all >>> works well.
> I just conjecture ivars fixed offsets of fragile abi worked well, but > variable offsets of non-fragile abi may make troubles from [dots > sizeWithAttributes: fontAttr].width; at FSNBrowserCell.m:87 (GWorkspace) > --> sizeWithAttributes at NSStringDrawing.m:671 (gnustep-gui) --> > boundingRectWithSize at NSStringDrawing.m:677 (gnustep-gui) in GDB > backtrace log quoted and NSStringDrawing.m:681 (FIXME: This ignores > options). In other words, undetermined object size and address of > non-fragile abi would be the cause of trouble. If this hypothesis were > correct, the origin of trouble is not at GWorkSpace source but at > GNUstep core source or libobjc2. All these may be just delirious > utterances from novice and even non-developer (me). I still don't understand what goes on here. Most likely your compiler is reordering the lines of code here. The assignment of NSZeroRect should only be executed in the exception case and even there it is not needed. Could you try to place a breakpoint on NSException? (b [NSException raise]) If this breakpoint gets reached before the segmentation fault, please provide us with the full stack trace. Removing the NSZeroRect initialisation gives still correct code, but I would prefer to understand where the problem comes from. Fred _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
