Skip to content

Deduplication of code objects can lead to incorrect/misleading stack frame identification #49952

Open
@dnfield

Description

@dnfield

For example, SomeRenderObject.semanticBounds may get deduplicated to RenderClipOval._defaultBounds, because the impelmentations are both Offset.zero & size, leading to a stack trace that looks like this:

at RenderBox.size(box.dart:2023)
at RenderClipOval._defaultClip(proxy_box.dart:1731)
at RenderVisibilityDetectorBase._scheduleUpdate.<anonymous closure>(render_visibility_detector.dart:143)
at RenderVisibilityDetectorBase._processCallbacks(render_visibility_detector.dart:62)
at _TaskEntry.run(binding.dart:91)

The at RenderClipOval._defaultClip(proxy_box.dart:1731) should actually read RenderVisibilityDetectorBase.bounds (which is implemented via semanticBounds and so got deduplicated).

This is counter-intuitive and led me to believe that the stack trace was busted somehow. If we can't avoid this, perhaps we could at least indicate in the symbolication all of the candidates for a particular symbol.

/cc @a-siva @mraleph (who helped figure this out on an internal issue).

xref b/244342335

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.customer-fluttertriagedIssue has been triaged by sub teamtype-enhancementA request for a change that isn't a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions