Fix go stop on panic (#32512)
Release Notes: - debugger: Fix stopping on a panic
This commit is contained in:
parent
72de3143c8
commit
e9570eefbf
3 changed files with 12 additions and 3 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -4050,7 +4050,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dap-types"
|
name = "dap-types"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/zed-industries/dap-types?rev=cef124a5109d6fd44a3f986882d78ce40b8d4fb5#cef124a5109d6fd44a3f986882d78ce40b8d4fb5"
|
source = "git+https://github.com/zed-industries/dap-types?rev=b40956a7f4d1939da67429d941389ee306a3a308#b40956a7f4d1939da67429d941389ee306a3a308"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"schemars",
|
"schemars",
|
||||||
"serde",
|
"serde",
|
||||||
|
|
|
@ -435,7 +435,7 @@ core-foundation-sys = "0.8.6"
|
||||||
core-video = { version = "0.4.3", features = ["metal"] }
|
core-video = { version = "0.4.3", features = ["metal"] }
|
||||||
criterion = { version = "0.5", features = ["html_reports"] }
|
criterion = { version = "0.5", features = ["html_reports"] }
|
||||||
ctor = "0.4.0"
|
ctor = "0.4.0"
|
||||||
dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "cef124a5109d6fd44a3f986882d78ce40b8d4fb5" }
|
dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "b40956a7f4d1939da67429d941389ee306a3a308" }
|
||||||
dashmap = "6.0"
|
dashmap = "6.0"
|
||||||
derive_more = "0.99.17"
|
derive_more = "0.99.17"
|
||||||
dirs = "4.0"
|
dirs = "4.0"
|
||||||
|
|
|
@ -183,6 +183,7 @@ impl StackFrameList {
|
||||||
let mut entries = Vec::new();
|
let mut entries = Vec::new();
|
||||||
let mut collapsed_entries = Vec::new();
|
let mut collapsed_entries = Vec::new();
|
||||||
let mut first_stack_frame = None;
|
let mut first_stack_frame = None;
|
||||||
|
let mut first_not_subtle_frame = None;
|
||||||
|
|
||||||
let stack_frames = self.stack_frames(cx);
|
let stack_frames = self.stack_frames(cx);
|
||||||
for stack_frame in &stack_frames {
|
for stack_frame in &stack_frames {
|
||||||
|
@ -197,6 +198,11 @@ impl StackFrameList {
|
||||||
}
|
}
|
||||||
|
|
||||||
first_stack_frame.get_or_insert(entries.len());
|
first_stack_frame.get_or_insert(entries.len());
|
||||||
|
if stack_frame.dap.presentation_hint
|
||||||
|
!= Some(dap::StackFramePresentationHint::Subtle)
|
||||||
|
{
|
||||||
|
first_not_subtle_frame.get_or_insert(entries.len());
|
||||||
|
}
|
||||||
entries.push(StackFrameEntry::Normal(stack_frame.dap.clone()));
|
entries.push(StackFrameEntry::Normal(stack_frame.dap.clone()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -209,7 +215,10 @@ impl StackFrameList {
|
||||||
|
|
||||||
std::mem::swap(&mut self.entries, &mut entries);
|
std::mem::swap(&mut self.entries, &mut entries);
|
||||||
|
|
||||||
if let Some(ix) = first_stack_frame.filter(|_| open_first_stack_frame) {
|
if let Some(ix) = first_not_subtle_frame
|
||||||
|
.or(first_stack_frame)
|
||||||
|
.filter(|_| open_first_stack_frame)
|
||||||
|
{
|
||||||
self.select_ix(Some(ix), cx);
|
self.select_ix(Some(ix), cx);
|
||||||
self.activate_selected_entry(window, cx);
|
self.activate_selected_entry(window, cx);
|
||||||
} else if let Some(old_selected_frame_id) = old_selected_frame_id {
|
} else if let Some(old_selected_frame_id) = old_selected_frame_id {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue