fix(lldb): retain completed trace facts through cleanup failures (#7023)

This commit is contained in:
Wenyu Chiou authored and GitHub committed 2026-10-25 01:16:26 +08:00
1 parent 422ca5a8f8
commit a1967fbbdb
4 files changed
+314 -25

No files matched your search

+9 -5
View File
@@ -116,6 +116,10 @@ const nativeCallFacts = (
trace: NativeCallReadback,
) => {
const { run } = trace;
const terminated = run.terminated && trace.terminated;
const terminationSummary = terminated
? "the process was killed"
: "termination was requested but could not be confirmed";
const unresolved = run.breakpoints
.filter(({ location_count: count }) => count === 0)
.map(({ index }) => index);
@@ -153,7 +157,7 @@ const nativeCallFacts = (
outcome: run.outcome,
exit_status: run.exit_status,
exit_description: run.exit_description,
terminated: run.terminated && trace.terminated,
terminated,
elapsed_ms: run.elapsed_ms,
stdout: trace.stdout,
stderr: trace.stderr,
@@ -183,17 +187,17 @@ const nativeCallFacts = (
"The selected pathname digest and LLDB module identity are checked around launch. No immutable executable snapshot is used; concurrent in-place mutation or replacement and restoration cannot be ruled out, so the loaded-image digest remains unknown.",
...(eventLimit
? [
`Observation stopped at max_events (${input.max_events}); later calls were not recorded and the process was killed.`,
`Observation stopped at max_events (${input.max_events}); later calls were not recorded and ${terminationSummary}.`,
]
: []),
...(resourceLimit
? [
"Observation stopped before retaining the next complete event because the estimated 8388608-byte (8 MiB) trace-payload or 65536-frame aggregate budget was reached; the process was killed. This release has no runtime override for those budgets.",
`Observation stopped before retaining the next complete event because the estimated 8388608-byte (8 MiB) trace-payload or 65536-frame aggregate budget was reached; ${terminationSummary}. This release has no runtime override for those budgets.`,
]
: []),
...(run.outcome === "duration-elapsed"
? [
`The process was still running after duration_ms (${input.duration_ms}) and was killed.`,
`The process was still running after duration_ms (${input.duration_ms}); ${terminationSummary}.`,
]
: []),
...(run.target_identity.stable
@@ -203,7 +207,7 @@ const nativeCallFacts = (
]),
...(run.outcome === "stop-limit"
? [
"Observation stopped after repeated signal or exception stops; the process was killed.",
`Observation stopped after repeated signal or exception stops; ${terminationSummary}.`,
]
: []),
...(unresolved.length === 0