Skip to content

[Bug] Incorrect gnuld message displayed in Problems panel as diagnostics #4910

@mariafilip-nxp

Description

@mariafilip-nxp

Brief Issue Summary

CMake Tools is creating diagnostics for informational build output lines like:
-- Zephyr version: 4.3.0 (/path/to/zephyr), build: v4.3.0

These appear in VS Code's Problems panel with:

  • Owner: cmake-build-diags
  • Severity: Information (8)
  • Source: cmake GNULD
[{
	"resource": "/path/to/project/build/-- Zephyr version: 4.3.0 (/path/to/zephyr), build",
	"owner": "cmake-build-diags",
	"severity": 8,
	"message": "v4.3.0",
	"source": "cmake GNULD",
	"startLineNumber": 1,
	"startColumn": 1,
	"endLineNumber": 1,
	"endColumn": 1000,
	"origin": "extHost7"
}]

Users see "problems" in the Problems panel when there are no actual issues, making it harder to identify real build errors and warnings.

Root Cause:

Found the incorrect regex in microsoft/vscode-cmake-tools/src/diagnostics/gnu-ld.ts:

{
    // path/to/ld[.exe]: message (without trailing colon)
    regexPattern: /^(.*ld(?:\.exe)?):\s+(.+)(?<!:)\s*$/,
    matchTypes: [MatchType.Full, MatchType.File, MatchType.Message]
}

Expected behavior:

Informational build status messages should not appear in the Problems panel. Only actual warnings and errors should be shown as diagnostics.

Actual behavior:

Normal build output containing "ld:" or "build:" is incorrectly parsed as GNU linker diagnostics.

CMake Tools Diagnostics

"os": "darwin",
  "vscodeVersion": "1.114.0",
  "cmtVersion": "1.24.4"

Debug Log

-

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    buga bug in the product

    Type

    No type

    Projects

    Status

    Blocked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions