[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/NativeScript/windows/main/runtime-devtools/README.md [Back]  [Original]

# runtime-devtools

V8 Inspector bridge that lets Chrome DevTools attach to a running NativeScript isolate.

## Usage

```rust
use runtime_devtools::{DevtoolsServer, DevtoolsServerConfig};

// On the V8 thread, after creating the isolate and context:
let mut server = DevtoolsServer::attach(
    &DevtoolsServerConfig::default(), // host: 127.0.0.1, port: 43000
    isolate,
    context,
)?;

println!("DevTools: {}", server.endpoint().frontend_url);

// In the JS execution loop:
server.pump_messages(); // dispatches pending CDP messages to V8
```

## What it does

1. Binds a `V8Inspector` + `V8InspectorSession` to the provided isolate/context.
2. Starts a background TCP server on the configured port.
3. Serves CDP discovery endpoints (`/json/version`, `/json/list`) as plain HTTP.
4. Upgrades `/devtools/page/runtime` connections to WebSocket and bridges them to V8.
5. Implements `run_message_loop_on_pause` so breakpoints work correctly.
6. `wait_for_debugger(timeout)` blocks until a frontend attaches, then pauses on the next statement (`--debug-brk`).

## Connecting

Open the `frontend_url` from `DevtoolsEndpoint` in Chrome, or use:

```
chrome://inspect    Configure    add 127.0.0.1:43000
```

Web Proxy Viewer  |  New URL  |  Original Page