about summary refs log tree commit diff
path: root/docs/dev/debugging.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/dev/debugging.md')
-rw-r--r--docs/dev/debugging.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/docs/dev/debugging.md b/docs/dev/debugging.md
index 8c48fd5a1fe..cc7a790ff46 100644
--- a/docs/dev/debugging.md
+++ b/docs/dev/debugging.md
@@ -57,6 +57,14 @@ To apply changes to an already running debug process, press <kbd>Ctrl+Shift+P</k
 
 - Go back to the `[Extension Development Host]` instance and hover over a Rust variable and your breakpoint should hit.
 
+If you need to debug the server from the very beginning, including its initialization code, you can use the `--wait-dbg` command line argument or `RA_WAIT_DBG` environment variable. The server will spin at the beginning of the `try_main` function (see `crates\rust-analyzer\src\bin\main.rs`)
+```rust
+    let mut d = 4;
+    while d == 4 { // set a breakpoint here and change the value
+        d = 4;
+    }
+```
+
 ## Demo
 
 - [Debugging TypeScript VScode extension](https://www.youtube.com/watch?v=T-hvpK6s4wM).