Devtools#665
Conversation
|
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 ./tool/gh_actions/devtools/install_devtool.shThen you can use the VSCode command 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 make weband then use Flutter to start up the application (see the 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. |
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.
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
No
Documentation
Yes. Help popups are enabled to describe features currently available.