Skip to content

Incorrect Implicit Return Information in Trace Packets #254

@IainCRobertson

Description

@IainCRobertson

The implicit_return mode information included in format 0/1/2 packets (specifically, the irdepth field) does not produce correct trace decoding in many cases.

Reporting the current stack depth is helpful for decoding recursive functions, but provides no information about the number of functions successfully executed previously. The decoder does not need to know the current stack depth - it needs to know the total number of function returns that were not explicitly reported.

This is a longstanding bug in the E-trace 2.0 spec. Regrettably, implicit return was not validated end to end (encode and decode) before ratification.

Spec update, including revised decoder pseudo-code that includes implicit return as well as branch predictor and jump target cache support for the 1st time here: #253

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions