Merge pull request #3712 from jsternberg/dap-skip-context-without-source

dap: skip the load build context step when it doesn't have an associated source line
This commit is contained in:
Tõnis Tiigi
2026-03-10 18:39:57 -07:00
committed by GitHub
2 changed files with 14 additions and 49 deletions
+14 -1
View File
@@ -180,6 +180,12 @@ func (t *thread) createBranch(dgst digest.Digest, exitpoint *step) (entrypoint *
parent: -1,
}
// The entrypoint doesn't have a source entry. Just skip this
// branch.
if entrypoint.frame.Source == nil {
return nil
}
// Create a pseudo-frame and attach it to the return point.
// This is mostly used for getting the correct inputs utilized
// by this frame.
@@ -223,11 +229,18 @@ func (t *thread) createBranch(dgst digest.Digest, exitpoint *step) (entrypoint *
inp := op.Inputs[i]
head := *entrypoint
entrypoint.dgst = ""
// Create the routine associated with this input.
// Associate it with the entrypoint in step.
head.in = t.createBranch(digest.Digest(inp.Digest), entrypoint)
// If this branch is empty (signified by a nil return value) then
// skip it.
if head.in == nil {
continue
}
entrypoint.dgst = ""
entrypoint = &head
}
-48
View File
@@ -406,54 +406,6 @@ func testDapBuildStepIn(t *testing.T, sb integration.Sandbox) {
Name: `^\[stage-1 .*\] COPY .* /etc/bar`,
},
},
// the following three steps are unintended and are the result
// of a bug in the debug adapter.
// see issue https://github.com/docker/buildx/issues/3565
{
{
Name: `^\[internal\] load build context`,
},
{
SourceName: "Dockerfile",
Line: 3,
Name: `^\[base .*\] COPY foo`,
},
{
SourceName: "Dockerfile",
Line: 7,
Name: `^\[stage-1 .*\] COPY .* /etc/bar`,
},
},
// todo: this shouldn't be a stop point.
{
{
Name: `^\[internal\] load build context`,
},
{
SourceName: "Dockerfile",
Line: 3,
Name: `^\[base .*\] COPY foo`,
},
{
SourceName: "Dockerfile",
Line: 7,
Name: `^\[stage-1 .*\] COPY .* /etc/bar`,
},
},
// duplicate of stop point 3 because of unintended branch
// associated with the build context copy.
{
{
SourceName: "Dockerfile",
Line: 3,
Name: `^\[base .*\] COPY foo`,
},
{
SourceName: "Dockerfile",
Line: 7,
Name: `^\[stage-1 .*\] COPY .* /etc/bar`,
},
},
// stop point 4
{
{