Repository navigation
Commit 9f9bd71
* fix(stack): explain unresolvedSource frames in the adapter's own terms (#816)
get_stack_trace appended js-debug's remedy ("attach with
adapterConfig.sourceMaps: false to see the generated .js paths") to the
note of every session whose frames carry unresolvedSource: true. On a
C/C++ attach that was nine native frames CodeLLDB names by symbol
(@NtWaitForSingleObject, @BaseThreadInitThunk, …) because they have no
debug info — nothing was source-mapped and sourceMaps is a key the C/C++
adapter does not know. Java's kept JDK label got the same sentence.
- The note's first sentence is adapter-neutral ("N frame(s) have no
source file on this host (unresolvedSource: true) — their file is a
label, not an openable path; do not pass it to get_source_context").
- New optional policy hook describeUnresolvedSource({count, attachMode})
supplies what such a frame IS under the debugger: js-debug names the
unshipped source map and spells the switch for the session's mode
(adapterConfig.sourceMaps on attach, adapterLaunchConfig.sourceMaps on
launch — the old sentence said "attach" on launches too); the CodeLLDB
policies (cpp/rust/cobol share describeLldbUnresolvedSource) say the
frames are native code without debug info and that the program's own
frames are the ones with a path. Policies with nothing to add leave
the neutral sentence alone; a throwing hook costs only the sentence.
Measured (Windows cpp attach, CodeLLDB 1.11.8, DAP trace): the flagged
frames are `source: {name: '@symbol', sourceReference: N}` with no path,
so the resolver's rule (sourceReference != 0) is what flags them — the
flag is right, the explanation was js-debug's.
Closes #816
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix(stack): word the unresolvedSource note from evidence; review follow-ups (#816)
Review of #822:
- The neutral sentence said "no source file on this host", which overclaims
for the JDI bridge's case (a class no breakpoint was set in is named by
package path whether or not its source is here); it now says "no openable
source path on this host … a label, not a path".
- describeUnresolvedSource receives the flagged frames' file labels
(UnresolvedSourceContext.files), so a policy speaks from evidence: the
CodeLLDB sentence says "native frames without debug info" only when every
label is a `@symbol`, and otherwise names both cases (a symbol-only frame,
or a runtime built elsewhere whose relative ../sysdeps/… path is not here —
the kept paused frame of issue #672, which has debug info).
- The Java policy gains its own account: classes the bridge names by
package path because it has no file path for them; a breakpoint set in a
class's source file teaches the bridge its path.
- The unresolvedSource field doc and the resolver's rule-A comment name
every adapter's case, not only js-debug's; the handler test asserts the
flag reaches the payload again and types its fake policies; the COBOL
guide points at the mechanism as #814 did for detach.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* test(shared): pass the flagged frames' labels to describeUnresolvedSource in the cpp/rust policy tests (#816)
The follow-up commit widened the hook's context with the flagged frames'
file labels; these two suites were edited with it but left out of that
commit's add set.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---------
Co-authored-by: JF <john.franklin@gmail.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
1 parent eceeaaf commit 9f9bd71
26 files changed
Lines changed: 361 additions & 44 deletions
File tree
- changelog.d
- docs
- architecture
- cobol
- cpp
- src
- server/handlers
- session/inspection
- tests
- adapters/java/unit
- core/unit
- server
- session
- e2e
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
| 128 | + | |
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
| 87 | + | |
| 88 | + | |
87 | 89 | | |
88 | 90 | | |
89 | 91 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
| 154 | + | |
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
729 | 729 | | |
730 | 730 | | |
731 | 731 | | |
732 | | - | |
| 732 | + | |
733 | 733 | | |
734 | 734 | | |
735 | 735 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
356 | | - | |
| 356 | + | |
357 | 357 | | |
358 | 358 | | |
359 | 359 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| |||
163 | 164 | | |
164 | 165 | | |
165 | 166 | | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
166 | 170 | | |
167 | 171 | | |
168 | 172 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| |||
63 | 64 | | |
64 | 65 | | |
65 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
| |||
0 commit comments