proposal: Add frame, value decorators
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
Research direction
The issue does not name files, tests, or entry points. Begin by clarifying the proposed extension API for values, stack frames, and backtraces, then identify the relevant display components; the issue currently does not define concrete completion criteria.
Written by the indexing model from the issue text.
Description
When I worked on GDB I came to feel that GDB was made so that GDB developers could debug GDB. This was how it was for a long time. But when we added with the Python API to GDB, along with Pretty Printing, frame decorators and filters, we handed back data representation to the user. Don't like how we print this object? Well, here's an API, and the ability to write your own, and hooks back into the display component to write your own representation. What parts of an object or value are important to the developer? It's going to depend on what that developer is trying to solve. So the default GDB information displays were, I think, more or less dependent on the feature implementor: usually what a GDB developer wanted to see when debugging their project (GDB).
So I know this is a super wishy washy proposal right now. But every value printed, every stack frame annotated, every backtrace printed, and so on, should first be offered to any extensions that want to work on them. That way a user can display any value they way they want to display it. If they don't care, well, they'll get the default version. Hopefully I've painted a rough picture of what I would love to see. Any more details, please ask! And if I can find some time, I hope to start putting some patches together.
- Dominant language
- Ruby
- Stars
- 1.3k
- Forks
- 146
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ruby/debug
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
Support exceptionOptions in setExceptionBreakpoints to catch arbitrary exception classes via DAP Open
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
palladius/rails8-app-on-gcp#145 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
rubocop/rubocop-rspec#2236 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
riscv/riscv-unified-db#2624 · 1 reaction ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100