discuss-gnustep
[Top][All Lists]
Advanced

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

Re: ProjectCenter Editor parenthesis highlighting segfault


From: Ivan Vučica
Subject: Re: ProjectCenter Editor parenthesis highlighting segfault
Date: Wed, 27 Aug 2014 19:12:15 +0100

Hopefully you'll read Raymond Chen's blogpost I previously quoted as well, to see why your bug report against GCC may get rejected.

This was an outright bug in PC code, and a violation of C standards, which let the compiler make some wild assumptions. It would be nice if a warning was generated, too. However, a compiler bug, this probably was not.

sent from phone

On Aug 27, 2014 6:52 PM, "desterium@t-online.de" <desterium@t-online.de> wrote:

> Hello,

>

> i thought that accessing an array out of it's dimension would lead to a segfault in the header of the loop.

>

> But reading your last mails I compiled the code with the original _expression_ in the head of the for-loop

>

> and put NSLog(@"---i=%i---",i) right at the beginning of the body.

>

>

>

> - (void)unhighlightCharacter: (NSTextView *)editorView

> {

> int i;

> NSTextStorage *textStorage = [editorView textStorage];

>

>

> [textStorage beginEditing];

>

>

> // if (isCharacterHighlit)

> for (i = 0; (highlited_chars[i] != -1 && i < 2); i++)

> {

> NSLog(@"---i=%i---",i);

> NSRange r = NSMakeRange(highlited_chars[i], 1);

> // NSRange r = NSMakeRange(highlitCharacterLocation, i);

>

>

> ...

>

>

>

>

>

> output of PC when clicking on a parenthesis:

>

> openapp ProjectCenter

> 2014-08-27 18:37:08.045 ProjectCenter[9823] final candidate path is: /usr/local/bin/gmake

> 2014-08-27 18:37:08.046 ProjectCenter[9823] final candidate path is: /usr/bin/gmake

> 2014-08-27 18:37:08.046 ProjectCenter[9823] final candidate path is: /usr/local/bin/make

> 2014-08-27 18:37:08.046 ProjectCenter[9823] final candidate path is: /usr/bin/make

> 2014-08-27 18:37:08.046 ProjectCenter[9823] Build tool found: /usr/bin/make

> 2014-08-27 18:37:08.064 ProjectCenter[9823] final candidate path is: /usr/local/bin/gdb

> 2014-08-27 18:37:08.064 ProjectCenter[9823] final candidate path is: /usr/bin/gdb

> 2014-08-27 18:37:08.065 ProjectCenter[9823] Debugger tool found: /usr/bin/gdb

> 2014-08-27 18:37:08.129 ProjectCenter[9823] NSDocumentClass PCProjectDocument not found

> 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCProjectDocument not found

> 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCClassDocument not found

> 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCHeaderDocument not found

> 2014-08-27 18:37:08.130 ProjectCenter[9823] NSDocumentClass PCCDocument not found

> 2014-08-27 18:37:12.496 ProjectCenter[9823] [click] category: Classes forProject: TestPCColors fileName: (null)

> 2014-08-27 18:37:13.066 ProjectCenter[9823] [click] category: Classes forProject: TestPCColors fileName: AppController.m

> 2014-08-27 18:37:13.066 ProjectCenter[9823] [click] category: Classes filePath: /Classes/AppController.m/

> 2014-08-27 18:37:13.067 ProjectCenter[9823] Opening new editor. Editor: ProjectCenter

> 2014-08-27 18:37:13.073 ProjectCenter[9823] PCProjectEditor editorDidOpen!

> 2014-08-27 18:37:13.165 ProjectCenter[9823] PCPE: categoryPath - /Classes/AppController.m/

> 2014-08-27 18:37:13.165 ProjectCenter[9823] PCEditor: asked for browser items for: AppController.m

> 2014-08-27 18:37:13.166 ProjectCenter[9823] Class> {ClassBodyRange = "{location=193, length=988}"; ClassName = "@AppController"; ClassNameRange = "{location=179, length=13}"; }

> 2014-08-27 18:37:13.354 ProjectCenter[9823] ClassHandler: dealloc

> 2014-08-27 18:37:14.579 ProjectCenter[9823] ---i=0---

> 2014-08-27 18:37:14.580 ProjectCenter[9823] ---i=1---

> 2014-08-27 18:37:14.580 ProjectCenter[9823] ---i=2---

> 2014-08-27 18:37:14.580 ProjectCenter[9823] ---i=3---

> Speicherzugriffsfehler (Speicherabzug geschrieben)

>

> I expected that i could never get greater than 1 in the body of the loop as the boolean _expression_

> must return false when i reaches 2. I ran this several times and i always reaches 3 bevor the segfault

> occurs.

 

>>That looks like a serious bug in your compiler then. Your reasoning is right, the body should not be entered with any value of i >>greater than 1 and if it does the compiler is generating incorrect code.

 

>>Wolfgang

 

As it's the official debian gobjc I'll file a bug report there.

 

Cheers

 

Markus


_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnustep


reply via email to

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