使用 Visual Studio 调试¶
配置调试器¶
将 WebKit.natvis 复制到相应目录,该目录包含 WebKit 基本类型的自定义视图。
调试 WebKit¶
有三种方法可以使用 Visual Studio 调试 WebKit:打开生成的 WebKit.sln、直接打开可执行文件以及附加到正在运行的 WebKit。
使用 --no-ninja --generate-project-only
选项调用 build-webkit,并在 WebKit 命令提示符下通过 devenv WebKitBuild\Release\WebKit.sln
或 devenv WebKitBuild\Debug\WebKit.sln
打开。
将 MiniBrowser 设置为解决方案的启动项目。在解决方案资源管理器中选择 MiniBrowser 项目,然后选择 项目 > 设为启动项目
。这将使项目在解决方案资源管理器中变为粗体。
启动调试器:选择 调试 > 开始调试
。
在 Ninja 构建中,没有解决方案文件。在这种情况下,请直接打开可执行文件。
devenv -debugexe .\WebKitBuild\Debug\bin64\MiniBrowser.exe
调试多个进程¶
您可以将单个调试器附加到多个进程。为此,请启动或附加到第一个进程,然后使用“工具 > 附加到进程…”或 Ctrl+Alt+P 附加到第二个进程。您的断点将应用于这两个进程。
有一个 Visual Studio 扩展可以自动附加子进程。子进程调试 Power Tool 简介
有两种方法可以查看调试器当前正在操作的进程并切换当前进程:进程窗口和调试位置工具栏。您可以使用 调试 > 窗口 > 进程
或 Ctrl+Shift+Alt+P
打开进程窗口。您可以使用 视图 > 工具栏 > 调试位置
显示调试位置工具栏。
Visual Studio 始终会暂停所有进程(即,您无法仅暂停一个进程)。同样,在使用“步入/步过/步出”命令时,Visual Studio 始终会单步执行所有进程。
检查 WebKit2 API 类型¶
您可以通过将 WebKit2 API 类型转换为其底层 WebKit2 实现类型来在 Visual Studio 中检查它们。例如,假设您有一个指向地址 0x12345678 的 WKMutableDictionaryRef,并想查看其内容。您可以使用以下监视表达式(在“监视窗口”或“快速监视窗口”中)查看其内容:
{,,WebKit}(WebKit::MutableDictionary*)0x12345678
只要您将上述 MutableDictionary 替换为适当的类型,同样的技术也适用于其他 WebKit2 API 类型。
杂项提示¶
请遵循使用 Microsoft 符号服务器的说明,以便 Visual Studio 可以显示涉及闭源组件的回溯。
在 “监视窗口”中添加 $err,hr
将显示 ::GetLastError()
在此刻将返回什么,并显示数值错误值及其关联的错误字符串。