2018-03-05 23:49:19 +05:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								## Debugging with XCode
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								### Generate xcode project for debugging sources (cannot build code from xcode)
							 | 
						
					
						
							
								
									
										
										
										
											2018-09-08 18:15:32 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								Run `gn gen` with the --ide=xcode argument.
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-05 23:49:19 +05:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								```sh
							 | 
						
					
						
							
								
									
										
										
										
											2019-11-07 11:51:44 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$ gn gen out/Testing --ide=xcode
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-05 23:49:19 +05:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								```
							 | 
						
					
						
							
								
									
										
										
										
											2018-09-08 18:15:32 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								This will generate the electron.ninja.xcworkspace. You will have to open this workspace
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-05 23:49:19 +05:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								to set breakpoints and inspect.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-09-08 18:15:32 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								See `gn help gen` for more information on generating IDE projects with GN.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-05 23:49:19 +05:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								### Debugging and breakpoints
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-07-20 14:58:19 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								Launch Electron app after build.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								You can now open the xcode workspace created above and attach to the Electron process
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-05 23:49:19 +05:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								through the Debug > Attach To Process > Electron debug menu. [Note: If you want to debug
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								the renderer process, you need to attach to the Electron Helper as well.]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								You can now set breakpoints in any of the indexed files. However, you will not be able
							 | 
						
					
						
							
								
									
										
										
										
											2018-07-20 14:58:19 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								to set breakpoints directly in the Chromium source.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								To set break points in the Chromium source, you can choose Debug > Breakpoints > Create
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-05 23:49:19 +05:30
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								Symbolic Breakpoint and set any function name as the symbol. This will set the breakpoint
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								for all functions with that name, from all the classes if there are more than one.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								You can also do this step of setting break points prior to attaching the debugger,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								however, actual breakpoints for symbolic breakpoint functions may not show up until the
							 | 
						
					
						
							
								
									
										
										
										
											2018-07-20 14:58:19 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								debugger is attached to the app.
							 |