flutter / flutter/devtools

Web version of devtools cannot display 64-bit numbers from typed data instances

Open
#2,159 0 comments 0 reactions 0 assignees View on GitHub
P3 screen: debugger
Dominant language
Dart
Stars
1.7k
Forks
404
Avg merge
6d 17h
Merged PRs (30d)
18

Description

For typed data instances, the VM service will return the byte contents encoded as a base64 String. In order to display a meaningful value in the debugger, this must be decoded and then converted to the appropriate typed data instance. For example, -1 will need to display as `0xFF` if the typed data instance was unsigned.

This poses a problem for `Unit64List` and `int64List`, since these types cannot be instantiated on the web.

One potential solution would be to pull in [fixnum](https://github.com/dart-lang/fixnum) and manually unmarshal Int64 numbers into a string representation - though that would not help the unsigned case. Another approach would be to write a utility based off of fixnum to handle both.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how the web debugger decodes VM-service base64 bytes for typed data instances and where it renders their values. Compare the required signed and unsigned 64-bit behavior, including Int64List and Uint64List, and consider the utility approaches mentioned; done means both types display meaningful values on the web.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.