--inspect 标志。考虑以下 Web 服务器。
server.ts
使用
--inspect 标志运行文件。
这将在可用端口上启动一个 WebSocket 服务器。调试工具连接到该服务器以检查正在运行的 Bun 进程。
Bun 在 debug.bun.sh 托管了一个基于 Web 的调试器。它是 WebKit 的 Web Inspector Interface 的修改版,对 Safari 用户来说会很熟悉。
terminal
在浏览器中打开提供的
debug.bun.sh URL 以开始调试会话。在此界面中,你可以查看正在运行文件的源代码、查看和设置断点,以及使用内置控制台执行代码。
接下来,设置一个断点。打开 Sources(源代码)选项卡,它会显示之前的代码,点击第
3 行以在 console.log(req.url) 语句上设置断点。
然后在浏览器中访问
http://localhost:3000 向服务器发送 HTTP 请求。页面会挂起,因为程序在你设置的断点处暂停了。
注意界面发生了变化。
使用底部的控制台在程序的上下文中运行任意代码,并完全访问断点处作用域内的变量。
Sources 窗格右侧列出了作用域内的局部变量;展开可查看其属性和方法。截图显示了
req 变量。
Sources 窗格左上角的按钮控制程序的执行。
以下是每个控制流按钮的功能。
- 继续执行脚本 — 运行程序直到下一个断点或异常。
- 单步跳过 — 继续执行下一行。
- 单步进入 — 如果当前语句包含函数调用,则进入被调用的函数。
- 单步跳出 — 如果当前语句是函数调用,完成执行后跳出该函数,返回到调用它的位置。
