debugger support for dx (#3814)

* add vscode debugger for apps

* todo: need to disconnect when rebuilding

* update debugger

* add uri handler to remote launch the debugger

* attach

* dont panic

* fixed it - hung processes are not errors

* wip: android debugger

* clean it up a bit

* revert ios stdout/stderr

* wire up pid from ios

* use target family instead of target_arch

* fix android

* bring back softkill

* typo
This commit is contained in:
Jonathan Kelley authored and GitHub committed 2025-05-24 23:31:42 +01:00
1 parent eb15b42ab1
commit b2bd1f48d4
13 files changed
+305 -41

No files matched your search

+22
View File
@@ -692,6 +692,7 @@ impl AppServer {
&mut self,
build_id: BuildId,
aslr_reference: Option<u64>,
pid: Option<u32>,
) {
match build_id {
BuildId::CLIENT => {
@@ -701,6 +702,9 @@ impl AppServer {
if let Some(aslr_reference) = aslr_reference {
self.client.aslr_reference = Some(aslr_reference);
}
if let Some(pid) = pid {
self.client.pid = Some(pid);
}
}
}
BuildId::SERVER => {
@@ -970,6 +974,24 @@ impl AppServer {
server.compiled_crates as f64 / server.expected_crates as f64
}
pub(crate) async fn open_debugger(&mut self, dev: &WebServer, build: BuildId) {
if self.use_hotpatch_engine {
tracing::warn!("Debugging symbols might not work properly with hotpatching enabled. Consider disabling hotpatching for debugging.");
}
match build {
BuildId::CLIENT => {
_ = self.client.open_debugger(dev).await;
}
BuildId::SERVER => {
if let Some(server) = self.server.as_mut() {
_ = server.open_debugger(dev).await;
}
}
_ => {}
}
}
}
/// Bind a listener to any point and return it