johnno1962 / GitDiff

Highlights deltas against git repo in Xcode
MIT License
891 stars 54 forks source link

Crash when attempt open Assistant Editor or scroll #41

Closed SergiyZhyrov closed 9 years ago

SergiyZhyrov commented 9 years ago

Hello. There are some problem with GitDiff. Sometimes 5-10 times per day), Xcode crash because of GitDiff. Actually can’t reproduce, but few conditionі should meets 1) Source code have modifications, which not committed, so GitDiff shows colors. 2) Xcode shows only primary editor in tab (Assistant Editor closed) 3) In Source code should be some unique method name, declared only in this file, i.e. -(void)_myCoolPrivateMethod, so when requested, Assistant editor will try show exactly this source file. 4) Press and hold on keyboard CMD+OPT / CMD+OPT+SHIFT and mouse over on method name (method name become highlighted as web link on mouseOver) 5) Click on method name, Xcode attempts to show Assistant editor with same content and crash 6) Relaunch Xcode. Repeat Step 4, 5 - 100% crash will be reproduced.

There are two ways to omit loop crashes. a) Press CMT+T - create new tab. Now no crashes, step 4-5 work as expected, Assistant Editor show same source file with GitDiff colors b) Click in Xcode interface to show Assistant Editor, assume it shows some another file. Now steps 4-5 work normal. So crash occur only if Assistant Editor closed, and attempt to present same file. With some certain modifications.

There are NSScroller(GitDiff) and remember that Xcode may crush just on scrolling too, until create new tab.

Process: Xcode [37465] Path: /Applications/Xcode.app/Contents/MacOS/Xcode Identifier: com.apple.dt.Xcode Version: 6.3.2 (7718) Build Info: IDEFrameworks-7718000000000000~2 App Item ID: 497799835 App External ID: 812404257 Code Type: X86-64 (Native) Parent Process: ??? [1] Responsible: Xcode [37465] User ID: 501

Date/Time: 2015-06-04 18:57:00.102 +0300 OS Version: Mac OS X 10.10.3 (14D136) Report Version: 11

Time Awake Since Boot: 28000 seconds

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information: ProductBuildVersion: 6D2105 UNCAUGHT EXCEPTION (NSInvalidArgumentException): *\ setObjectForKey: key cannot be nil UserInfo: (null) Hints: None Backtrace: 0 0x00007fff93130024 exceptionPreprocess (in CoreFoundation) 1 0x0000000105e7abb4 DVTFailureHintExceptionPreprocessor (in DVTFoundation) 2 0x00007fff94d8576e objc_exception_throw (in libobjc.A.dylib) 3 0x00007fff93016c66 -[NSDictionaryM setObject:forKey:](in CoreFoundation) 4 0x0000000111400ef5 -[GitFileDiffs initWithFilepath:] at /Users/sergiyzhyrov/Library/Application Support/Alcatraz/Plug-ins/GitDiff/Classes/GitDiff.mm:194 (in GitDiff) 5 0x00000001114017f6 -[NSView(GitDiffs) gitDiffs] at /Users/sergiyzhyrov/Library/Application Support/Alcatraz/Plug-ins/GitDiff/Classes/GitDiff.mm:299 (in GitDiff) 6 0x0000000111403f9c -[NSScroller(GitDiff) gitdiff_drawKnobSlotInRect:highlight:] at /Users/sergiyzhyrov/Library/Application Support/Alcatraz/Plug-ins/GitDiff/Classes/GitDiff.mm:473 (in GitDiff) 7 0x00007fff99f4e0bc -[NSScroller drawRect:](in AppKit) 8 0x00007fff99cfb799 -[NSView _drawRect:clip:](in AppKit) 9 0x00007fff99cf9e0a -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 10 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 11 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 12 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 13 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 14 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 15 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 16 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 17 0x00000001062ea53b -[DVTReplacementView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in DVTKit) 18 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 19 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 20 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 21 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 22 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 23 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 24 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 25 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 26 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 27 0x00000001062ea53b -[DVTReplacementView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in DVTKit) 28 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 29 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 30 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 31 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 32 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:](in AppKit) 33 0x00007fff99cf7ca6 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:](in AppKit) 34 0x00007fff99cf7403 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:](in AppKit) 35 0x00007fff99cf379b -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:](in AppKit) 36 0x00007fff99cab2be -[NSView displayIfNeeded](in AppKit) 37 0x00007fff99d3c5b7 -[NSClipView _immediateScrollToPoint:](in AppKit) 38 0x00007fff99d3a4ae -[NSClipView scrollToPoint:](in AppKit) 39 0x00007fff99e1a00e -[NSScrollView scrollClipView:toPoint:](in AppKit) 40 0x00007fff99d3a23d -[NSClipView _scrollTo:animateScroll:flashScrollerKnobs:](in AppKit) 41 0x00007fff99d40625 -[NSClipView _scrollRectToVisible:fromView:animateScroll:flashScrollerKnobs:](in AppKit) 42 0x00000001064b8ddc -[DVTSourceTextView scrollRectToVisible:](in DVTKit) 43 0x00007fff99f05188 -[NSTextView(NSPrivate) _centeredScrollRectToVisible:forceCenter:](in AppKit) 44 0x0000000106308bb1 -[DVTSourceTextView _centeredScrollRectToVisible:forceCenter:](in DVTKit) 45 0x00007fff99f04bc9 -[NSTextView(NSPrivate) _scrollRangeToVisible:forceCenter:](in AppKit) 46 0x0000000106308a69 -[DVTSourceTextView scrollRangeToVisible:animate:](in DVTKit) 47 0x00007fff902ac329 -[NSLayoutManager(NSPrivate) _resizeTextViewForTextContainer:](in UIFoundation) 48 0x00007fff901f7ca5 -[NSLayoutManager setTextStorage:](in UIFoundation) 49 0x000000010646158d -[DVTFoldingLayoutManager setTextStorage:](in DVTKit) 50 0x00007fff9021d56b -[NSTextStorage addLayoutManager:](in UIFoundation) 51 0x00000001062da69c -[DVTTextStorage addLayoutManager:](in DVTKit) 52 0x00007fff901f81b5 -[NSLayoutManager replaceTextStorage:](in UIFoundation) 53 0x000000011091484e -[IDESourceCodeEditor _doInitialSetup](in IDESourceEditor) 54 0x00000001108ac573 -[IDESourceCodeEditor contentViewDidCompleteLayout](in IDESourceEditor) 55 0x00000001108ac318 -[IDESourceCodeEditorContainerView didCompleteLayout](in IDESourceEditor) 56 0x00000001062d7099 +[DVTLayoutView_ML _recursivelyLayoutSubviewsOfView:populatingSetWithLaidOutViews:](in DVTKit) 57 0x00000001070e19c7 91-[IDEEditorContext _openNavigableItem:documentExtension:document:shouldInstallEditorBlock:]_block_invoke (in IDEKit) 58 0x0000000106f36c8a -[IDEEditorContext _performBlockInsideReentrantGuard:](in IDEKit) 59 0x0000000106f36b2e -[IDEEditorContext _openNavigableItem:documentExtension:document:shouldInstallEditorBlock:](in IDEKit) 60 0x0000000106f9a41a -[IDEEditorContext _openNavigableItem:withContentsOfURL:shouldInstallEditorBlock:](in IDEKit) 61 0x00000001070e33a0 -[IDEEditorContext _notifyDelegateAndOpenNavigableItem:withContentsURL:documentExtensionIdentifier:locationToSelect:annotationRepresentedObject:stateDictionary:annotationWantsIndicatorAnimation:exploreAnnotationRepresentedObject:highlightSelection:alwaysReplaceExistingNavigableItem:skipSubDocumentNavigationUnlessEditorIsReplaced:](in IDEKit) 62 0x0000000106fae663 -[IDEEditorContext _notifyDelegateAndOpenEditorOpenSpecifier:updateHistory:](in IDEKit) 63 0x0000000106fadf13 -[IDEEditorContext _openEditorOpenSpecifier:updateHistory:](in IDEKit) 64 0x0000000106fadd73 -[IDEEditorContext openEditorOpenSpecifier:](in IDEKit) 65 0x0000000106fbdf07 -[IDEEditorGeniusMode openEditorOpenSpecifier:editorContext:](in IDEKit) 66 0x0000000106fadaca -[IDEEditorArea _openEditorOpenSpecifier:editorContext:takeFocus:](in IDEKit) 67 0x000000010711975e 108+[IDEEditorCoordinator _doOpenEditorOpenSpecifier:forWorkspaceTabController:editorContext:target:takeFocus:]_block_invoke (in IDEKit) 68 0x0000000107117305 +[IDEEditorCoordinator _doOpenIn_NewEditor_withWorkspaceTabController:usingBlock:](in IDEKit) 69 0x000000010711a28b +[IDEEditorCoordinator _openNavigationHUDSelection:forWorkspaceDocument:documentURL:usingBlock:](in IDEKit) 70 0x0000000107368143 -[IDENavigationHUDWindowController closeWithHUDController:selection:animate:](in IDEKit) 71 0x0000000107367cc0 __89-[IDENavigationHUDWindowController initWithURL:initialSelection:options:completionBlock:]_block_invoke (in IDEKit) 72 0x000000010737cbdf -[IDENavigationHUDController selectionView:didDoubleClickWithEvent:](in IDEKit) 73 0x000000010737f720 -[IDENavigationHUDSelectionView mouseUp:](in IDEKit) 74 0x00007fff9a3e3e57 -[NSWindow _reallySendEvent:isDelayedEvent:](in AppKit) 75 0x00007fff99d76d76 -[NSWindow sendEvent:](in AppKit) 76 0x00007fff99d73312 -[NSApplication sendEvent:](in AppKit) 77 0x0000000106ef7c14 -[IDEApplication sendEvent:](in IDEKit) 78 0x00007fff99c9cc68 -[NSApplication run](in AppKit) 79 0x00007fff99c19354 NSApplicationMain (in AppKit) 80 0x00007fff8dbf15c9 start (in libdyld.dylib)

abort() called

Application Specific Signatures: NSInvalidArgumentException

Application Specific Backtrace 1: 0 CoreFoundation 0x00007fff9313003c exceptionPreprocess + 172 1 DVTFoundation 0x0000000105e7abb4 DVTFailureHintExceptionPreprocessor + 194 2 libobjc.A.dylib 0x00007fff94d8576e objc_exception_throw + 43 3 CoreFoundation 0x00007fff93016c66 -[NSDictionaryM setObject:forKey:] + 1174 4 GitDiff 0x0000000111400ef5 -[GitFileDiffs initWithFilepath:] + 2325 5 GitDiff 0x00000001114017f6 -[NSView(GitDiffs) gitDiffs] + 534 6 GitDiff 0x0000000111403f9c -[NSScroller(GitDiff) gitdiff_drawKnobSlotInRect:highlight:] + 156 7 AppKit 0x00007fff99f4e0bc -[NSScroller drawRect:] + 1284 8 AppKit 0x00007fff99cfb799 -[NSView _drawRect:clip:] + 4238 9 AppKit 0x00007fff99cf9e0a -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1875 10 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 11 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 12 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 13 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 14 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 15 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 16 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 17 DVTKit 0x00000001062ea53b -[DVTReplacementView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 207 18 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 19 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 20 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 21 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 22 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 23 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 24 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 25 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 26 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 27 DVTKit 0x00000001062ea53b -[DVTReplacementView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 207 28 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 29 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 30 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 31 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 32 AppKit 0x00007fff99cfa20e -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2903 33 AppKit 0x00007fff99cf7ca6 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 913 34 AppKit 0x00007fff99cf7403 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 333 35 AppKit 0x00007fff99cf379b -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2761 36 AppKit 0x00007fff99cab2be -[NSView displayIfNeeded] + 1876 37 AppKit 0x00007fff99d3c5b7 -[NSClipView _immediateScrollToPoint:] + 8290 38 AppKit 0x00007fff99d3a4ae -[NSClipView scrollToPoint:] + 241 39 AppKit 0x00007fff99e1a00e -[NSScrollView scrollClipView:toPoint:] + 75 40 AppKit 0x00007fff99d3a23d -[NSClipView _scrollTo:animateScroll:flashScrollerKnobs:] + 1682 41 AppKit 0x00007fff99d40625 -[NSClipView _scrollRectToVisible:fromView:animateScroll:flashScrollerKnobs:] + 567 42 DVTKit 0x00000001064b8ddc -[DVTSourceTextView scrollRectToVisible:] + 347 43 AppKit 0x00007fff99f05188 -[NSTextView(NSPrivate) _centeredScrollRectToVisible:forceCenter:] + 1319 44 DVTKit 0x0000000106308bb1 -[DVTSourceTextView _centeredScrollRectToVisible:forceCenter:] + 274 45 AppKit 0x00007fff99f04bc9 -[NSTextView(NSPrivate) _scrollRangeToVisible:forceCenter:] + 2134 46 DVTKit 0x0000000106308a69 -[DVTSourceTextView scrollRangeToVisible:animate:] + 428 47 UIFoundation 0x00007fff902ac329 -[NSLayoutManager(NSPrivate) _resizeTextViewForTextContainer:] + 7159 48 UIFoundation 0x00007fff901f7ca5 -[NSLayoutManager setTextStorage:] + 1283 49 DVTKit 0x000000010646158d -[DVTFoldingLayoutManager setTextStorage:] + 183 50 UIFoundation 0x00007fff9021d56b -[NSTextStorage addLayoutManager:] + 84 51 DVTKit 0x00000001062da69c -[DVTTextStorage addLayoutManager:] + 47 52 UIFoundation 0x00007fff901f81b5 -[NSLayoutManager replaceTextStorage:] + 836 53 IDESourceEditor 0x000000011091484e -[IDESourceCodeEditor _doInitialSetup] + 975 54 IDESourceEditor 0x00000001108ac573 -[IDESourceCodeEditor contentViewDidCompleteLayout] + 596 55 IDESourceEditor 0x00000001108ac318 -[IDESourceCodeEditorContainerView didCompleteLayout] + 67 56 DVTKit 0x00000001062d7099 +[DVTLayoutView_ML _recursivelyLayoutSubviewsOfView:populatingSetWithLaidOutViews:] + 320 57 IDEKit 0x00000001070e19c7 91-[IDEEditorContext _openNavigableItem:documentExtension:document:shouldInstallEditorBlock:]_block_invoke + 1665 58 IDEKit 0x0000000106f36c8a -[IDEEditorContext _performBlockInsideReentrantGuard:] + 83 59 IDEKit 0x0000000106f36b2e -[IDEEditorContext _openNavigableItem:documentExtension:document:shouldInstallEditorBlock:] + 3297 60 IDEKit 0x0000000106f9a41a -[IDEEditorContext _openNavigableItem:withContentsOfURL:shouldInstallEditorBlock:] + 781 61 IDEKit 0x00000001070e33a0 -[IDEEditorContext _notifyDelegateAndOpenNavigableItem:withContentsURL:documentExtensionIdentifier:locationToSelect:annotationRepresentedObject:stateDictionary:annotationWantsIndicatorAnimation:exploreAnnotationRepresentedObject:highlightSelection:alwaysReplaceExistingNavigableItem:skipSubDocumentNavigationUnlessEditorIsReplaced:] + 3713 62 IDEKit 0x0000000106fae663 -[IDEEditorContext _notifyDelegateAndOpenEditorOpenSpecifier:updateHistory:] + 1262 63 IDEKit 0x0000000106fadf13 -[IDEEditorContext _openEditorOpenSpecifier:updateHistory:] + 386 64 IDEKit 0x0000000106fadd73 -[IDEEditorContext openEditorOpenSpecifier:] + 261 65 IDEKit 0x0000000106fbdf07 -[IDEEditorGeniusMode openEditorOpenSpecifier:editorContext:] + 91 66 IDEKit 0x0000000106fadaca -[IDEEditorArea _openEditorOpenSpecifier:editorContext:takeFocus:] + 144 67 IDEKit 0x000000010711975e 108+[IDEEditorCoordinator _doOpenEditorOpenSpecifier:forWorkspaceTabController:editorContext:target:takeFocus:]_block_invoke + 173 68 IDEKit 0x0000000107117305 +[IDEEditorCoordinator _doOpenIn_NewEditor_withWorkspaceTabController:usingBlock:] + 408 69 IDEKit 0x000000010711a28b +[IDEEditorCoordinator _openNavigationHUDSelection:forWorkspaceDocument:documentURL:usingBlock:] + 230 70 IDEKit 0x0000000107368143 -[IDENavigationHUDWindowController closeWithHUDController:selection:animate:] + 55 71 IDEKit 0x0000000107367cc0 __89-[IDENavigationHUDWindowController initWithURL:initialSelection:options:completionBlock:]_block_invoke + 61 72 IDEKit 0x000000010737cbdf -[IDENavigationHUDController selectionView:didDoubleClickWithEvent:] + 57 73 IDEKit 0x000000010737f720 -[IDENavigationHUDSelectionView mouseUp:] + 100 74 AppKit 0x00007fff9a3e3e57 -[NSWindow _reallySendEvent:isDelayedEvent:] + 648 75 AppKit 0x00007fff99d76d76 -[NSWindow sendEvent:] + 470 76 AppKit 0x00007fff99d73312 -[NSApplication sendEvent:] + 2504 77 IDEKit 0x0000000106ef7c14 -[IDEApplication sendEvent:] + 924 78 AppKit 0x00007fff99c9cc68 -[NSApplication run] + 711 79 AppKit 0x00007fff99c19354 NSApplicationMain + 1832 80 libdyld.dylib 0x00007fff8dbf15c9 start + 1

johnno1962 commented 9 years ago

Thanks for the report. I’ve been able to replicate and fix. Can you give it a try?

SergiyZhyrov commented 9 years ago

It’s one of my favorites plugin, using/testing it everyday up to 9 hours. So will test all Friday.