Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redesign --max_function_stack_trace_depth flag #100

Open
piotmag769 opened this issue Jun 30, 2024 · 0 comments
Open

Redesign --max_function_stack_trace_depth flag #100

piotmag769 opened this issue Jun 30, 2024 · 0 comments
Labels
design-doc Requires design doc. feature New feature or request.

Comments

@piotmag769
Copy link
Collaborator

This flag currently has a few issues:

  • the name is inaccurate (the profile graph doesn't have to be a tree due to possible mutual recursion, so the word depth is misleading)
  • simple recursive function calls are merged for the purpose of this flag, but mutually recursive function calls are not:
    • call stack [f, f, f, x, y, z] is merged to [f, x, y, z]. With the flag set to 3 the stack will be cut to [f, x, y] and the user will see a graph like this f -> x -> z
    • call stack [a, b, a, b, c, d] is not merged. With the flag set to 3 the stack will be cut to [a, b, a] and the user will see a graph like this
       a -> b-|
       ^------|
      
      without the c function
  • a user has no option to disable merging of recursive functions (prob not in the graph/UI itself, just for the purpose of the depth flag) and (?) loop functions (this one is probably fine as loop functions should always be merged, but we can make a separate option for that) - probably another flag could be added

A design doc should be written.

@piotmag769 piotmag769 added feature New feature or request. design-doc Requires design doc. labels Jun 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design-doc Requires design doc. feature New feature or request.
Projects
Status: Backlog
Development

No branches or pull requests

1 participant