Debugging on OS X and iOS Simulator
To debug from within Xcode, you can use the WebKit workspace. Ensure that the Products and Intermediates locations for the workspace match those used by
build-webkit by choosing File > Workspace Settings and clicking the Advanced button, selecting Custom, Relative to Workspace, and entering WebKitBuild both for Products and for Intermediates. Note that if you have specified a custom build location in Xcode preferences, then you don’t need to do this.
Debugging UIProcess or WebProcess
Run Safari with the WebKit version you built.
xcrun --sdk iphonesimulator lldb --attach-name MobileSafariin the Terminal to debug the UIProcess.
com.apple.WebKit.WebContent.Developmentfor the value of
--attach-nameto debug the WebProcess:
xcrun --sdk iphonesimulator lldb --attach-name com.apple.WebKit.WebContent.Development
Internal Debug MenuThere is a Debug menu that can be enabled in Safari, and it supplies many useful options to help with debugging. To enable it, run the following in your terminal:
defaults write com.apple.Safari IncludeInternalDebugMenu 1
Follow the instructions on the debugging UIProcess page.
Current versions of Safari use a process for each tab, so it is easy to end up with a new WebProcess and have to reattach. If you enable the Internal Debug Menu as outlined above, you can have Safari display the Process ID of the WebProcess for each tab. Simply go to Debug > Miscellaneous Flags and select Show Web Process IDs In Page Titles. You should now see something like
[WP 60737] in the title of every web page you navigate to, and 60737 is the Process ID of the WebProcess backing that tab.
From the command line:
debug-minibrowserscript with the
--target-web-processoption. It will start the debugger with WebProcess as the target and with command-line arguments that will make WebProcess run Safari or MiniBrowser as its client. At the debugger prompt, enter
runto start the process.
Open the WebKit workspace and choose “All Source (target WebProcess)” from the Scheme pop-up menu in the toolbar, then choose Product > Run. If WebKit is already built, it is quicker to choose Product > Perform Action > Run Without Building
Debugging on Windows
You can open it in either Visual Studio 2010, or Visual C++ Express 2010. If you get errors about not being able to find
.propsfiles, run update-webkit, then close and relaunch Cygwin and Visual Studio or Visual C++ Express.
Set WinLauncher as the solution's StartUp project
Select the WinLauncher project in the Solution Explorer, then choose Project > Set as StartUp Project. This will cause the project to turn bold in the Solution Explorer.
Launch the debugger
Choose Debug > Start Debugging.
Alternatively, you can debug layout tests with DumpRenderTree
Set DumpRenderTreeLauncher as your startup project, set the layout test as a command argument, and launch the debugger.
In DumpRenderTreeLauncher's properties, go to Configuration Properties->Debugging and set the Command Arguments field to the full path of the layout test you want to debug, see below: