Jump to: navigation, search

Difference between revisions of "EDT:Debug"

 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
The Java-based debugger is implemented via [http://jcp.org/en/jsr/detail?id=45 JSR-45], plus some of our own extensions (such as support for a customized Variables view).  
 
The Java-based debugger is implemented via [http://jcp.org/en/jsr/detail?id=45 JSR-45], plus some of our own extensions (such as support for a customized Variables view).  
  
The JavaScript-based debugger has not been started yet.  
+
The JavaScript-based debugger is a port from the RBD EGL Rich UI debugger.  
  
 
<br>  
 
<br>  
  
{| cellspacing="1" cellpadding="1" border="1" width="900" style=""
+
[https://bugs.eclipse.org/bugs/buglist.cgi?bug_severity=blocker;bug_severity=critical;bug_severity=major;bug_severity=normal;bug_severity=minor;bug_severity=trivial;classification=Tools;query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;component=EDT%20Debug;product=EDT Open bugs]
 +
 
 +
[https://bugs.eclipse.org/bugs/buglist.cgi?bug_severity=enhancement;classification=Tools;query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;component=EDT%20Debug;product=EDT Open enhancement requests]
 +
 
 +
[[EDT:Debug Extensibility|Extending the debugger]]<br>
 +
 
 +
[[EDT:Debug Regression Testing|Regression testing the debugger]]
 +
 
 +
<br>
 +
 
 +
In the following table:
 +
 
 +
*<span style="background-color:#cccccc">gray</span> = done for both debuggers
 +
*<span style="background-color:#FFFF00">yellow</span> = done for one debugger but not the other<br>
 +
*<span style="background-color:#FF0000">red</span> = not yet supported in either debugger
 +
 
 +
{| cellspacing="1" cellpadding="1" border="1" width="900"
 
|-
 
|-
 
| bgcolor="#999999" align="center" width="350" | '''Function'''  
 
| bgcolor="#999999" align="center" width="350" | '''Function'''  
| bgcolor="#999999" align="center" width="100" colspan="3" | '''Java'''<br>  
+
| bgcolor="#999999" align="center" width="100" colspan="5" | '''Java'''<br>  
| bgcolor="#999999" align="center" width="100" colspan="3" | '''JavaScript'''<br>
+
| bgcolor="#999999" align="center" width="100" colspan="4" | '''JavaScript'''
 
|-
 
|-
 
| bgcolor="#cccccc" | <br>  
 
| bgcolor="#cccccc" | <br>  
 +
| bgcolor="#cccccc" align="center" valign="middle" | '''Sizing'''<br>
 
| bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>'''  
 
| bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>'''  
 +
| bgcolor="#cccccc" align="center" valign="middle" | '''0.8'''
 
| bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>'''  
 
| bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>'''  
 
| bgcolor="#cccccc" align="center" valign="middle" | '''Future<br>'''  
 
| bgcolor="#cccccc" align="center" valign="middle" | '''Future<br>'''  
 +
| bgcolor="#cccccc" align="center" valign="middle" | '''Sizing'''<br>
 
| bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>'''  
 
| bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>'''  
 
| bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>'''  
 
| bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>'''  
Line 20: Line 39:
 
|-
 
|-
 
| bgcolor="#cccccc" | Core framework<br>  
 
| bgcolor="#cccccc" | Core framework<br>  
 +
| <br>
 
| done<br>  
 
| done<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 +
| 15d<br>
 +
| done ({{bug|351854}})
 
| <br>  
 
| <br>  
| {{bug|351854}}
+
| <br>
 
|-
 
|-
| bgcolor="#cccccc" | ''Stepping through statements''<br>
+
| bgcolor="#cccccc" |  
| bgcolor="#cccccc" | <br>  
+
*Debug on a server such as Apache Tomcat
| bgcolor="#cccccc" | <br>  
+
 
| bgcolor="#cccccc" | <br>  
+
| 3d
| bgcolor="#cccccc" | <br>
+
| done ({{bug|353046}})
| bgcolor="#cccccc" | <br>
+
| <br>  
| bgcolor="#cccccc" | <br>
+
| <br>  
 +
| <br>  
 +
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 +
|-
 +
| bgcolor="#cccccc" colspan="10" | ''Stepping through statements''<br>
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Most basic of function<br>
 
*Most basic of function<br>
  
 +
| <br>
 
| done (free)<br>  
 
| done (free)<br>  
 
| <br>  
 
| <br>  
Line 43: Line 70:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| Will be covered by {{bug|351854}}
+
| done ({{bug|351854}})
 +
| <br>
 +
| <br>
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Step between EGL and Java<br>
 
*Step between EGL and Java<br>
  
 +
| <br>
 
| done (free)<br>  
 
| done (free)<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| bgcolor="#cccccc" align="center" colspan="3" | N/A
+
| <br>
 +
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
*Decide how to filter runtimes that users won't want to step into<br>
+
*Filter runtimes that users won't want to step into (basic)<br>
  
| {{bug|346265}}<br>  
+
| 1d<br>
 +
| done ({{bug|346265}})<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| bgcolor="#cccccc" align="center" colspan="3" | N/A
+
| <br>
 +
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
|-
 
|-
| bgcolor="#cccccc" | ''Breakpoints''<br>  
+
| bgcolor="#cccccc" |  
| bgcolor="#cccccc" | <br>  
+
*Filter runtimes that users won't want to step into (extensible)<br>
| bgcolor="#cccccc" | <br>  
+
 
| bgcolor="#cccccc" | <br>  
+
| 4d<br>  
| bgcolor="#cccccc" | <br>  
+
| <br>  
| bgcolor="#cccccc" | <br>  
+
| done ({{bug|353050}})
| bgcolor="#cccccc" | <br>
+
| <br>  
 +
| <br>  
 +
| bgcolor="#cccccc" align="center" colspan="4" | N/A <br>
 +
|-
 +
| bgcolor="#cccccc" colspan="10" | ''Breakpoints''
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Line breakpoints<br>
 
*Line breakpoints<br>
  
 +
| <br>
 
| done<br>  
 
| done<br>  
 
| <br>  
 
| <br>  
Line 77: Line 115:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| {{bug|352582}}<br>
+
| done ({{bug|352582}})
 +
| <br>
 +
| <br>
 
|-
 
|-
| bgcolor="#cccccc" |  
+
| bgcolor="#FF0000" |  
 
*Conditional breakpoints<br>
 
*Conditional breakpoints<br>
  
 +
| 5d<sup>[1]</sup><br>
 +
| <br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351236}}  
 
| {{bug|351236}}  
 +
| 5d<sup>[1]</sup><br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351237}}
 
| {{bug|351237}}
 
|-
 
|-
| bgcolor="#cccccc" |  
+
| bgcolor="#FF0000" |  
 
*Hit count on breakpoints
 
*Hit count on breakpoints
  
|  
+
| 1d<br>
 +
| <br>
 +
| <br>
 +
| <br>
 
| {{bug|352585}}  
 
| {{bug|352585}}  
|  
+
| 1d<br>
|  
+
| <br>
|  
+
| <br>
 
| {{bug|352586}}
 
| {{bug|352586}}
 
|-
 
|-
| bgcolor="#cccccc" |  
+
| bgcolor="#FF0000" |  
 
*Watchpoints<br>
 
*Watchpoints<br>
  
 +
| 15d<br>
 +
| <br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351873}}  
 
| {{bug|351873}}  
 +
| 15d<br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351874}}
 
| {{bug|351874}}
 
|-
 
|-
| bgcolor="#cccccc" | ''Variables view''<br>  
+
| bgcolor="#cccccc" colspan="10" | ''Variables view''<br>
| bgcolor="#cccccc" | <br>
+
|-
| bgcolor="#cccccc" | <br>  
+
| bgcolor="#cccccc" |  
| bgcolor="#cccccc" | <br>  
+
*Variable adapter framework
| bgcolor="#cccccc" | <br>  
+
 
| bgcolor="#cccccc" | <br>
+
| 2d
| bgcolor="#cccccc" | <br>
+
| done ({{bug|352771}})
 +
| <br>  
 +
| <br>  
 +
| <br>  
 +
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Primitives and records<br>
 
*Primitives and records<br>
  
 +
| <br>
 
| done<br>  
 
| done<br>  
 
| <br>  
 
| <br>  
Line 125: Line 179:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| Will be covered by {{bug|351854}}
+
| done ({{bug|351854}})
 +
| <br>
 +
| <br>
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*User and system libraries<br>
 
*User and system libraries<br>
  
 +
| <br>
 
| done ({{bug|346252}})<br>  
 
| done ({{bug|346252}})<br>  
 
| <br>  
 
| <br>  
Line 135: Line 192:
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| Will be covered by {{bug|351854}}
+
| done ({{bug|351854}})
 +
| <br>
 +
| <br>
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Data tables, forms, &amp; program parameters<br>
 
*Data tables, forms, &amp; program parameters<br>
  
 +
| <br>
 
| done ({{bug|346254}})<br>  
 
| done ({{bug|346254}})<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| bgcolor="#cccccc" align="center" colspan="3" | N/A<br>
+
| <br>
 +
| bgcolor="#cccccc" align="center" colspan="4" | &nbsp;N/A - not supported in JSGen&nbsp;
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Arrays<br>
 
*Arrays<br>
  
| {{bug|352021}}<br>  
+
| 1/2d<sup>[2]</sup><br>
 +
| done ({{bug|352021}})<br>
 +
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 +
| done ({{bug|351854}})
 
| <br>  
 
| <br>  
| Will be covered by {{bug|351854}}
+
| <br>
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Handler fields
 
*Handler fields
  
|  
+
| <br>
|  
+
| done
|  
+
| <br>
|  
+
| <br>
|  
+
| <br>
| Will be covered by {{bug|351854}}
+
| <br>
 +
| done ({{bug|351854}})
 +
| <br>
 +
| <br>
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
*Format display of certain variables<br>
+
*Dictionaries
  
| {{bug|346247}}  
+
| 1/2d<sup>[2]</sup><br>
 +
| done ({{bug|352600}})
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
| Will be covered by {{bug|351854}}
+
| done ({{bug|351854}})
 +
| <br>
 +
| <br>
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 +
*ArrayDictionaries
 +
 +
| bgcolor="#cccccc" align="center" colspan="9" | N/A - not supported in EDT JavaGen or JSGen
 +
|-
 +
| bgcolor="#cccccc" |
 +
*Format display of certain variables<br>
 +
 +
| 3d<br>
 +
| done ({{bug|346247}})
 +
| <br>
 +
| <br>
 +
| <br>
 +
| <br>
 +
| done ({{bug|351854}})
 +
| <br>
 +
| <br>
 +
|-
 +
| bgcolor="#FF0000" |
 
*Simple value modification of primitives<br>
 
*Simple value modification of primitives<br>
  
| {{bug|346249}}<br>  
+
| 3d<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 +
| <br>
 +
| {{bug|346249}}
 +
| 1d<br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|352598}}<br>
 
| {{bug|352598}}<br>
 
|-
 
|-
| bgcolor="#cccccc" |  
+
| bgcolor="#FF0000" |  
*Complex value modification of variables (supporting expressions)<br>
+
*Complex value modification of variables<br>
  
 +
| 5d<sup>[1]</sup><br>
 +
| <br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|352595}}  
 
| {{bug|352595}}  
 +
| 4d<br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|352597}}<br>
 
| {{bug|352597}}<br>
 
|-
 
|-
| bgcolor="#cccccc" |  
+
| bgcolor="#FF0000" |  
 
*Build watch expressions from variable context menu<br>
 
*Build watch expressions from variable context menu<br>
  
 +
| 3d<br>
 +
| <br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351858}}  
 
| {{bug|351858}}  
 +
| 3d<br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351859}}
 
| {{bug|351859}}
 
|-
 
|-
| bgcolor="#cccccc" | Hot code replace (aka hotswapping)<br>  
+
| bgcolor="#FFFF00" | Hot code replace (aka hotswapping)<br>
 +
| <br>  
 
| done (free)<br>  
 
| done (free)<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 +
| <br>
 +
| 20d<br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351238}}
 
| {{bug|351238}}
 
|-
 
|-
| bgcolor="#cccccc" | Watch expressions<br>  
+
| bgcolor="#FF0000" | Compile &amp; generate contextual expressions
 +
| 10d
 +
| <br>
 +
| <br>
 +
| <br>
 +
| {{bug|352666}}
 +
| 10d
 +
| <br>
 +
| <br>
 +
| {{bug|352666}}
 +
|-
 +
| bgcolor="#FF0000" | Watch expressions<br>
 +
| 5d<sup>[1]</sup><br>
 +
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351240}}  
 
| {{bug|351240}}  
 +
| 4d<sup>[1]</sup><br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
Line 222: Line 336:
 
|-
 
|-
 
| bgcolor="#cccccc" | Run to line<br>  
 
| bgcolor="#cccccc" | Run to line<br>  
 +
| <br>
 
| done ({{bug|346256}})<br>  
 
| done ({{bug|346256}})<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 +
| 1d<br>
 +
| done ({{bug|352593}})<br>
 
| <br>  
 
| <br>  
| {{bug|352593}}<br>
+
| <br>
 
|-
 
|-
| bgcolor="#cccccc" | Drop to frame<br>  
+
| bgcolor="#FFFF00" | Drop to frame<br>
 +
| <br>  
 
| done (free)<br>  
 
| done (free)<br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 +
| <br>
 +
| 3d<br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351239}}
 
| {{bug|351239}}
 
|-
 
|-
| bgcolor="#cccccc" | Hover value in source editor<br>  
+
| bgcolor="#FF0000" | Hover value in source editor<br>
 +
| 4d<br>
 +
| <br>  
 
| <br>  
 
| <br>  
 
| {{bug|351872}}  
 
| {{bug|351872}}  
 
| <br>  
 
| <br>  
 +
| 4d<br>
 
| <br>  
 
| <br>  
 
| <br>  
 
| <br>  
Line 246: Line 369:
 
|}
 
|}
  
<br>
+
<br>  
 +
 
 +
[1] Depends on {{bug|352666}} which is sized at 10 days<br>
 +
 
 +
[2] Depends on {{bug|352771}} which is sized at 2 days<br>
 +
 
 +
[[Category:EDT]]

Latest revision as of 08:18, 1 May 2012

The Java-based debugger is implemented via JSR-45, plus some of our own extensions (such as support for a customized Variables view).

The JavaScript-based debugger is a port from the RBD EGL Rich UI debugger.


Open bugs

Open enhancement requests

Extending the debugger

Regression testing the debugger


In the following table:

  • gray = done for both debuggers
  • yellow = done for one debugger but not the other
  • red = not yet supported in either debugger
Function Java
JavaScript

Sizing
0.7
0.8 1.0
Future
Sizing
0.7
1.0
Future
Core framework

done



15d
done (bug 351854)

  • Debug on a server such as Apache Tomcat
3d done (bug 353046)


N/A
Stepping through statements
  • Most basic of function

done (free)




done (bug 351854)

  • Step between EGL and Java

done (free)



N/A
  • Filter runtimes that users won't want to step into (basic)
1d
done (bug 346265)



N/A
  • Filter runtimes that users won't want to step into (extensible)
4d

done (bug 353050)

N/A
Breakpoints
  • Line breakpoints

done




done (bug 352582)

  • Conditional breakpoints
5d[1]



bug 351236 5d[1]


bug 351237
  • Hit count on breakpoints
1d



bug 352585 1d


bug 352586
  • Watchpoints
15d



bug 351873 15d


bug 351874
Variables view
  • Variable adapter framework
2d done (bug 352771)


N/A
  • Primitives and records

done




done (bug 351854)

  • User and system libraries

done (bug 346252)




done (bug 351854)

  • Data tables, forms, & program parameters

done (bug 346254)



 N/A - not supported in JSGen 
  • Arrays
1/2d[2]
done (bug 352021)




done (bug 351854)

  • Handler fields

done



done (bug 351854)

  • Dictionaries
1/2d[2]
done (bug 352600)



done (bug 351854)

  • ArrayDictionaries
N/A - not supported in EDT JavaGen or JSGen
  • Format display of certain variables
3d
done (bug 346247)



done (bug 351854)

  • Simple value modification of primitives
3d



bug 346249 1d


bug 352598
  • Complex value modification of variables
5d[1]



bug 352595 4d


bug 352597
  • Build watch expressions from variable context menu
3d



bug 351858 3d


bug 351859
Hot code replace (aka hotswapping)

done (free)



20d


bug 351238
Compile & generate contextual expressions 10d


bug 352666 10d

bug 352666
Watch expressions
5d[1]



bug 351240 4d[1]


bug 351241
Run to line

done (bug 346256)



1d
done (bug 352593)


Drop to frame

done (free)



3d


bug 351239
Hover value in source editor
4d


bug 351872
4d


bug 351872


[1] Depends on bug 352666 which is sized at 10 days

[2] Depends on bug 352771 which is sized at 2 days