Skip to content

Devtools#665

Open
desmonddak wants to merge 21 commits into
intel:mainfrom
desmonddak:devtools
Open

Devtools#665
desmonddak wants to merge 21 commits into
intel:mainfrom
desmonddak:devtools

Conversation

@desmonddak

Copy link
Copy Markdown
Contributor

Description & Motivation

A baseline for a ROHD design debugger: this version has a strong ability to connect to DTD and multiple VMs, and has reconnection and state restoration if we restart the debugger.

It currently will display the latest values in the Details pane, demonstrating a rudimentary connection to the simulator via DTD/VM.

Related Issue(s)

Replaces PR #657

Testing

Tested web build version as well as Devtools in Browser versions.

Backwards-compatibility

Is this a breaking change that will not be backwards-compatible? If yes, how so?

No

Documentation

Does the change require any updates to documentation? If so, where? Are they included?

Yes. Help popups are enabled to describe features currently available.

@desmonddak

Copy link
Copy Markdown
Contributor Author

This is semi-usable for debug, allowing for hierarchy traversal, port listings, and live value display.

You can build the full devtools version, which installs in extension/ locally.

./tool/gh_actions/devtools/install_devtool.sh

Then you can use the VSCode command Run Devtools in Browser and debug a live ROHD test being debugged in the current VSCode session because the details pane will maintain live port values for whatever level of hierarchy you want to observe.

If you want to debug a remote VSCode session, you can use the tasks that are built into the rohd_devtool_extension area or you can build it yourself. Either way you need to be in the rohd_devtool_extension/ subdirectory:

make web

and then use Flutter to start up the application (see the .vscode/tasks.json for the exact command).

Once started, you paste in the DTD address (or the port-forwarded version) and it will discover the VM debug sessions in that VSCode session, link, and retrieve the design hierarchy and current values (updated live).

This is a baseline framework to which we will add schematic viewing and live waveforms.

desmonddak and others added 16 commits June 14, 2026 10:42
Clarify comment

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Migrate CrossProbeService (abstract interface, LocalCrossProbeChannel,
LocalCrossProbeService, NullCrossProbeService) and the CrossProbeButton
toolbar widget into the shared rohd_devtools_widgets package, and export
them from the package barrel.

Both files depend only on the Flutter SDK (foundation/material) already
declared by the package, so no new dependencies are introduced.
Migrate RohdExtensionClient (abstract handshake interface plus
NullExtensionClient) and its shared status model (rohd_extension_status.dart:
RohdSourceFormat, RohdFormatInfo, RohdModuleInfo) into the shared
rohd_devtools_widgets package, and export both from the package barrel.

rohd_extension_status.dart is pure Dart with no imports; the client uses
only package:flutter/foundation already declared by the package, so no new
dependencies are introduced.
Migrate cross_probe_menu.dart into the shared rohd_devtools_widgets package
and export it from the barrel. Provides the AvailableSourceFormats and
GoToSourceCallback typedefs, SourceFormatIconBuilder, kDefaultNavigableFormats,
and the buildGotoSourceMenuItems helpers used by all viewers to build the
generalized 'Go to <format> Source' context-menu items.

Depends only on package:flutter/material (already declared) and the
sibling rohd_extension_status.dart, so no new dependencies are introduced.
Migrate logic_type_utils.dart into the shared rohd_devtools_widgets package
and export it from the barrel. Provides TypeFieldNode and expandLogicType
for expanding LogicStructure/LogicArray type metadata and extracting
sub-field values via bit-slicing, used by rohd-schematic-viewer.

Pure Dart with no imports, so no new dependencies are introduced.
Update capture_boundary.dart with two additive, backward-compatible
parameters:
 - pixelRatio (default 2.0) so callers can request higher-resolution
   output; the schematic viewer passes a larger value for print-quality
   PNG exports.
 - saveFn (optional) so callers such as the VS Code webview host can
   route PNG bytes through a native Save dialog instead of the default
   platform download.

No new dependencies: uses only the Flutter SDK and the package's own
savePngBytes/showExportToast already exported from the barrel.
Move bit_field_utils.dart (BitFieldDef, BitFieldUtils, define-bit-fields
dialog) and bit_expansion_menu.dart (BitExpansionAction, BitExpandRangeAction,
the Expand Bits / Define Bit Fields popup helpers) into the widgets package and
export them from the barrel library. These were previously carried only as a
post-merge overlay, so decoupled consumers (e.g. the standalone wave viewer)
that depend on the devtools-branch package could not resolve BitFieldDef /
BitExpandRangeAction. Self-contained: only depends on flutter/material.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant