New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 9 users
Status: Assigned
HW: ----
NextAction: ----
OS: ----
Priority: 2
Type: FeatureRequest

issue chromium:155730

Sign in to add a comment
Display hidden stack values: return values and exceptions
Project Member Reported by, Oct 13 2012 Back to list
V8 debug API and protocol should expose the following stack values, currently invisible:

- a return value, when paused below return statement
- a return value, when paused inside finally after return executed
- an exception being thrown, when paused inside finally
- when paused inside complex expression, sub-expression results such as:
  * function calls,
  * value conversion,
  * method resolved function
  * etc

See related issue from Chromium project:
Implementation ideas:

1. All the values are stored on stack indeed.
2. Debug stack analyzer should be able to fetch those value and return them to user more-or-less annotated.
3. An annotation in form of <function return|method resolve|...> plus source code position is probably optimal. A raw unannotated set of temporary values could be returned as well, but it looks really poor.
4. Rinfo record could store these annotations. The simplest approach is to annotate all values in each debug slot rinfo. This could nonoptimal though, because some stack slot annotation might be repeated several times.
5. Compiler can track temporary stack slot usage by storing pointers to AST nodes in stack – hopefully this is cheap.
Comment 2 by, Oct 16 2012
Status: Assigned
- a return value, when paused below return statement
this was implemented in

Blocking: chromium:155730
Labels: Priority-2
Sign in to add a comment