How can I set CG_CONTEXT_SHOW_BACKTRACE environmental variable?

IosXcodeSwiftCore Graphics

Ios Problem Overview


I have three buttons in my view. After setting the cornerRadus in the viewDidLoad() : button.layer.cornerRadius = 20 I get the following error message in the log:

 <Error>: CGContextSaveGState: invalid context 0x0. 
If you want to see the backtrace, please set 
CG_CONTEXT_SHOW_BACKTRACE environmental variable.

Questions:

  • How can I set CG_CONTEXT_SHOW_BACKTRACE environmental variable?
  • Or how can I fix this warning?

Okay I've the backtrace now from the message. It doesn't make any sense to me. Some help please...

Aug  7 14:27:00  <Error>: CGContextSaveGState: invalid context 0x0. Backtrace:
	  <-[UIStatusBarItemView updateContentsAndWidth]+33>
	   <-[UIStatusBarItemView initWithItem:data:actions:style:]+477>
	    <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+134>
	     <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+163>
	      <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+36
	       <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+92>
	        <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+797>
	         <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+332>
	          <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+360>
	           <+[UIView(Animation) performWithoutAnimation:]+65>
	            <-[UIStatusBar _prepareToSetStyle:animation:forced:]+866>
	             <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+391>
	              <-[UIStatusBar requestStyle:animationParameters:forced:]+437>
	               <-[UIStatusBar requestStyle:animated:forced:]+90>
	                <-[UIStatusBar _evaluateServerRegistration]+250>
	                 <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+590>
	                  <-[UIView(Hierarchy) _postMovedFromSuperview:]+544>
	                   <-[UIView(Internal) _addSubview:positioned:relativeTo:]+1967>
	                    <-[UIStatusBarWindow setStatusBar:]+288>
	                     <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+340>
	                      <-[UIApplication _runWithMainScene:transitionContext:completion:]+950>
	                       <-[UIApplication workspaceDidEndTransaction:]+188>
	                        <-[FBSSerialQueue _performNext]+192>
	                         <-[FBSSerialQueue _performNextFromRunLoopSource]+45>
	                          <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+17>
	                           <__CFRunLoopDoSources0+556>
	                            <__CFRunLoopRun+867>
	                             <CFRunLoopRunSpecific+488>
	                              <-[UIApplication _run]+402>
	                               <UIApplicationMain+171>
	                                <main+117>



Aug  7 14:27:00  <Error>: CGContextTranslateCTM: invalid context 0x0. Backtrace:
	  <-[UIStatusBarItemView updateContentsAndWidth]+33>
	   <-[UIStatusBarItemView initWithItem:data:actions:style:]+477>
	    <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+134>
	     <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+163>
	      <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+36
	       <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+92>
	        <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+797>
	         <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+332>
	          <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+360>
	           <+[UIView(Animation) performWithoutAnimation:]+65>
	            <-[UIStatusBar _prepareToSetStyle:animation:forced:]+866>
	             <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+391>
	              <-[UIStatusBar requestStyle:animationParameters:forced:]+437>
	               <-[UIStatusBar requestStyle:animated:forced:]+90>
	                <-[UIStatusBar _evaluateServerRegistration]+250>
	                 <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+590>
	                  <-[UIView(Hierarchy) _postMovedFromSuperview:]+544>
	                   <-[UIView(Internal) _addSubview:positioned:relativeTo:]+1967>
	                    <-[UIStatusBarWindow setStatusBar:]+288>
	                     <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+340>
	                      <-[UIApplication _runWithMainScene:transitionContext:completion:]+950>
	                       <-[UIApplication workspaceDidEndTransaction:]+188>
	                        <-[FBSSerialQueue _performNext]+192>
	                         <-[FBSSerialQueue _performNextFromRunLoopSource]+45>
	                          <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+17>
	                           <__CFRunLoopDoSources0+556>
	                            <__CFRunLoopRun+867>
	                             <CFRunLoopRunSpecific+488>
	                              <-[UIApplication _run]+402>
	                               <UIApplicationMain+171>
	                                <main+117>




Aug  7 14:27:00 <Error>: CGContextRestoreGState: invalid context 0x0. Backtrace:
	  <-[UIStatusBarItemView updateContentsAndWidth]+33>
	   <-[UIStatusBarItemView initWithItem:data:actions:style:]+477>
	    <+[UIStatusBarItemView createViewForItem:withData:actions:foregroundStyle:]+134>
	     <-[UIStatusBarLayoutManager _createViewForItem:withData:actions:]+163>
	      <-[UIStatusBarLayoutManager _prepareEnabledItemType:withEnabledItems:withData:actions:itemAppearing:itemDisappearing:]+36
	       <-[UIStatusBarLayoutManager prepareEnabledItems:withData:actions:]+92>
	        <-[UIStatusBarForegroundView _setStatusBarData:actions:animated:]+797>
	         <-[UIStatusBarForegroundView setStatusBarData:actions:animated:]+332>
	          <__51-[UIStatusBar _prepareToSetStyle:animation:forced:]_block_invoke+360>
	           <+[UIView(Animation) performWithoutAnimation:]+65>
	            <-[UIStatusBar _prepareToSetStyle:animation:forced:]+866>
	             <-[UIStatusBar _requestStyleAttributes:animationParameters:forced:]+391>
	              <-[UIStatusBar requestStyle:animationParameters:forced:]+437>
	               <-[UIStatusBar requestStyle:animated:forced:]+90>
	                <-[UIStatusBar _evaluateServerRegistration]+250>
	                 <__45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke+590>
	                  <-[UIView(Hierarchy) _postMovedFromSuperview:]+544>
	                   <-[UIView(Internal) _addSubview:positioned:relativeTo:]+1967>
	                    <-[UIStatusBarWindow setStatusBar:]+288>
	                     <-[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:]+340>
	                      <-[UIApplication _runWithMainScene:transitionContext:completion:]+950>
	                       <-[UIApplication workspaceDidEndTransaction:]+188>
	                        <-[FBSSerialQueue _performNext]+192>
	                         <-[FBSSerialQueue _performNextFromRunLoopSource]+45>
	                          <__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+17>
	                           <__CFRunLoopDoSources0+556>
	                            <__CFRunLoopRun+867>
	                             <CFRunLoopRunSpecific+488>
	                              <-[UIApplication _run]+402>
	                               <UIApplicationMain+171>
	                                <main+117>

Ios Solutions


Solution 1 - Ios

You can set an environmental variable via this menu: Product -> Scheme -> Edit Scheme. Under the "Run" item, locate the "Arguments" tab, you'll see "Environmental Variables" in the tab, Add CG_CONTEXT_SHOW_BACKTRACE and set its value to YES.

Solution 2 - Ios

It's a bug in 9b5:
https://forums.developer.apple.com/thread/13683

File a RADAR with Apple.

Solution 3 - Ios

This problem happen with Xcode 7. In my case i removed the UIViewControllerBasedStatusBarAppearance from Info.plist and the problem solved! See the answer in this post:

Solution 4 - Ios

On Xcode 7:

In case you still want the status bar is hidden, just change UIViewControllerBasedStatusBarAppearance in the Info.plist file into View controller-based status bar appearance. Don't forget to set it by NO

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser5087998View Question on Stackoverflow
Solution 1 - IosutogariaView Answer on Stackoverflow
Solution 2 - IosGreg RobertsonView Answer on Stackoverflow
Solution 3 - IosWelesView Answer on Stackoverflow
Solution 4 - IosNghia LuongView Answer on Stackoverflow