Difference between revisions of "EDT:Debug"

From Eclipsepedia

Jump to: navigation, search
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>  
 
  
 
[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=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]  
 
[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]  
 
  
 
<br>  
 
<br>  
 
  
 
{| cellspacing="1" cellpadding="1" border="1" width="900" style=""
 
{| cellspacing="1" cellpadding="1" border="1" width="900" style=""
 
|-
 
|-
| bgcolor="#999999" align="center" width="350" | '''Function'''
+
| bgcolor="#999999" align="center" width="350" | '''Function'''  
+
| bgcolor="#999999" align="center" width="100" colspan="4" | '''Java'''<br>  
| bgcolor="#999999" align="center" width="100" colspan="4" | '''Java'''<br>
+
+
 
| bgcolor="#999999" align="center" width="100" colspan="4" | '''JavaScript'''
 
| 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" | '''Sizing'''<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" | '''0.7<br>'''
+
| bgcolor="#cccccc" align="center" valign="middle" | '''Future<br>'''  
+
| bgcolor="#cccccc" align="center" valign="middle" | '''Sizing<sup>[4]</sup>'''<br>  
| bgcolor="#cccccc" align="center" valign="middle" | '''1.0<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" | '''Future<br>'''
+
+
| bgcolor="#cccccc" align="center" valign="middle" | '''Sizing<sup>[4]</sup>'''<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" | '''Future<br>'''
 
| bgcolor="#cccccc" align="center" valign="middle" | '''Future<br>'''
 
|-
 
|-
| bgcolor="#cccccc" | Core framework<br>
+
| bgcolor="#cccccc" | Core framework<br>  
+
| <br>  
| <br>
+
| done<br>  
+
| <br>  
| done<br>
+
| <br>  
+
| 15d<br>  
| <br>
+
| done ({{bug|351854}})  
+
| <br>  
| <br>
+
+
| 15d<br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
| <br>
 
| <br>
 
|-
 
|-
Line 63: Line 40:
 
*Debug on a server such as Apache Tomcat
 
*Debug on a server such as Apache Tomcat
  
| 3d
+
| 3d  
+
| done ({{bug|353046}})  
| done ({{bug|353046}})
+
| <br>  
+
| <br>  
| <br>
+
+
| <br>
+
+
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
|-
 
|-
Line 78: Line 51:
 
*Most basic of function<br>
 
*Most basic of function<br>
  
| <br>
+
| <br>  
+
| done (free)<br>  
| done (free)<br>
+
| <br>  
+
| <br>  
| <br>
+
+
| <br>
+
+
 
|  
 
|  
| done ({{bug|351854}})
+
| done ({{bug|351854}})  
 
|  
 
|  
 
| <br>
 
| <br>
Line 94: Line 63:
 
*Step between EGL and Java<br>
 
*Step between EGL and Java<br>
  
| <br>
+
| <br>  
+
| done (free)<br>  
| done (free)<br>
+
| <br>  
+
| <br>  
| <br>
+
+
| <br>
+
+
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
|-
 
|-
Line 107: Line 72:
 
*Filter runtimes that users won't want to step into (basic)<br>
 
*Filter runtimes that users won't want to step into (basic)<br>
  
| 1d<br>
+
| 1d<br>  
+
| done ({{bug|346265}})<br>  
| done ({{bug|346265}})<br>
+
| <br>  
+
| <br>  
| <br>
+
+
| <br>
+
+
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
|-
 
|-
Line 120: Line 81:
 
*Filter runtimes that users won't want to step into (extensible)<br>
 
*Filter runtimes that users won't want to step into (extensible)<br>
  
| 4d<br>
+
| 4d<br>  
+
| <br>  
| <br>
+
| {{bug|353050}}  
+
| <br>  
| {{bug|353050}}
+
+
| <br>
+
+
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A <br>
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A <br>
 
|-
 
|-
Line 135: Line 92:
 
*Line breakpoints<br>
 
*Line breakpoints<br>
  
| <br>
+
| <br>  
+
| done<br>  
| done<br>
+
| <br>  
+
| <br>  
| <br>
+
+
| <br>
+
+
 
|  
 
|  
| done ({{bug|352582}})
+
| done ({{bug|352582}})  
| <br>
+
| <br>  
+
 
| <br>
 
| <br>
 
|-
 
|-
Line 152: Line 104:
 
*Conditional breakpoints<br>
 
*Conditional breakpoints<br>
  
| 5d<sup>[1]</sup><br>
+
| 5d<sup>[1]</sup><br>  
+
| <br>  
| <br>
+
| <br>  
+
| {{bug|351236}}  
| <br>
+
| 5d<sup>[1]</sup><br>  
+
| <br>  
| {{bug|351236}}
+
| <br>  
+
| 5d<sup>[1]</sup><br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|351237}}
 
| {{bug|351237}}
 
|-
 
|-
Line 171: Line 116:
 
*Hit count on breakpoints
 
*Hit count on breakpoints
  
| 1d<br>
+
| 1d<br>  
+
| <br>  
| <br>
+
| <br>  
+
| {{bug|352585}}  
| <br>
+
| 1d<br>  
+
| <br>  
| {{bug|352585}}
+
| <br>  
+
| 1d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|352586}}
 
| {{bug|352586}}
 
|-
 
|-
Line 190: Line 128:
 
*Watchpoints<br>
 
*Watchpoints<br>
  
| 15d<br>
+
| 15d<br>  
+
| <br>  
| <br>
+
| <br>  
+
| {{bug|351873}}  
| <br>
+
| 15d<br>  
+
| <br>  
| {{bug|351873}}
+
| <br>  
+
| 15d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|351874}}
 
| {{bug|351874}}
 
|-
 
|-
Line 211: Line 142:
 
*Variable adapter framework
 
*Variable adapter framework
  
| 2d
+
| 2d  
+
| {{bug|352771}}  
| {{bug|352771}}
+
| <br>  
+
| <br>  
| <br>
+
+
| <br>
+
+
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
| bgcolor="#cccccc" align="center" colspan="4" | N/A
 
|-
 
|-
Line 224: Line 151:
 
*Primitives and records<br>
 
*Primitives and records<br>
  
| <br>
+
| <br>  
+
| done<br>  
| done<br>
+
| <br>  
+
| <br>  
| <br>
+
| <br>  
+
| done ({{bug|351854}})  
| <br>
+
| <br>  
+
| <br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
|  
 
|  
 
|-
 
|-
Line 242: Line 163:
 
*User and system libraries<br>
 
*User and system libraries<br>
  
| <br>
+
| <br>  
+
| done ({{bug|346252}})<br>  
| done ({{bug|346252}})<br>
+
| <br>  
+
| <br>  
| <br>
+
| <br>  
+
| done ({{bug|351854}})  
| <br>
+
| <br>  
+
| <br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
|  
 
|  
 
|-
 
|-
Line 260: Line 175:
 
*Data tables, forms, &amp; program parameters<br>
 
*Data tables, forms, &amp; program parameters<br>
  
| <br>
+
| <br>  
+
| done ({{bug|346254}})<br>  
| done ({{bug|346254}})<br>
+
| <br>  
+
| <br>  
| <br>
+
| <br>  
+
| done ({{bug|351854}})  
| <br>
+
| <br>  
+
| <br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
|  
 
|  
 
|-
 
|-
Line 278: Line 187:
 
*Arrays<br>
 
*Arrays<br>
  
| 1/2d<sup>[2]</sup><br>
+
| 1/2d<sup>[2]</sup><br>  
+
| done ({{bug|352021}})<br>  
| done ({{bug|352021}})<br>
+
| <br>  
+
| <br>  
| <br>
+
| <br>  
+
| done ({{bug|351854}})  
| <br>
+
| <br>  
+
| <br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
|  
 
|  
 
|-
 
|-
Line 296: Line 199:
 
*Handler fields
 
*Handler fields
  
| <br>
+
| <br>  
+
| done  
| done
+
| <br>  
+
| <br>  
| <br>
+
| <br>  
+
| done ({{bug|351854}})  
| <br>
+
| <br>  
+
| <br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
|  
 
|  
 
|-
 
|-
Line 314: Line 211:
 
*Dictionaries
 
*Dictionaries
  
| 1/2d<sup>[2]</sup><br>
+
| 1/2d<sup>[2]</sup><br>  
+
| done ({{bug|352600}})  
| done ({{bug|352600}})
+
| <br>  
+
| <br>  
| <br>
+
| <br>  
+
| done ({{bug|351854}})  
| <br>
+
| <br>  
+
| <br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
|  
 
|  
 
|-
 
|-
Line 332: Line 223:
 
*ArrayDictionaries
 
*ArrayDictionaries
  
| 1/2d<sup>[2]</sup><sup>[3]</sup><br>
+
| bgcolor="#cccccc" align="center" colspan="8" | N/A - not supported in EDT JavaGen or JSGen
+
| <br>
+
+
| <br>
+
+
| {{bug|352602}}
+
| <br>
+
+
| &nbsp;
+
| <br>
+
+
|
+
 
|-
 
|-
 
| bgcolor="#cccccc" |  
 
| bgcolor="#cccccc" |  
 
*Format display of certain variables<br>
 
*Format display of certain variables<br>
  
| 3d<br>
+
| 3d<br>  
+
| {{bug|346247}}  
| {{bug|346247}}
+
| <br>  
+
| <br>  
| <br>
+
| <br>  
+
| done ({{bug|351854}})  
| <br>
+
| <br>  
+
| <br>
+
+
| done ({{bug|351854}})
+
| <br>
+
+
 
|  
 
|  
 
|-
 
|-
Line 367: Line 240:
 
*Simple value modification of primitives<br>
 
*Simple value modification of primitives<br>
  
| 3d<br>
+
| 3d<br>  
+
| <br>  
| <br>
+
| <br>  
+
| {{bug|346249}}  
| <br>
+
| 1d<br>  
+
| <br>  
| {{bug|346249}}
+
| <br>  
+
| 1d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|352598}}<br>
 
| {{bug|352598}}<br>
 
|-
 
|-
Line 386: Line 252:
 
*Complex value modification of variables<br>
 
*Complex value modification of variables<br>
  
| 5d<sup>[1]</sup><br>
+
| 5d<sup>[1]</sup><br>  
+
| <br>  
| <br>
+
| <br>  
+
| {{bug|352595}}  
| <br>
+
| 4d<br>  
+
| <br>  
| {{bug|352595}}
+
| <br>  
+
| 4d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|352597}}<br>
 
| {{bug|352597}}<br>
 
|-
 
|-
Line 405: Line 264:
 
*Build watch expressions from variable context menu<br>
 
*Build watch expressions from variable context menu<br>
  
| 3d<br>
+
| 3d<br>  
+
| <br>  
| <br>
+
| <br>  
+
| {{bug|351858}}  
| <br>
+
| 3d<br>  
+
| <br>  
| {{bug|351858}}
+
| <br>  
+
| 3d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|351859}}
 
| {{bug|351859}}
 
|-
 
|-
| bgcolor="#cccccc" | Hot code replace (aka hotswapping)<br>
+
| bgcolor="#cccccc" | Hot code replace (aka hotswapping)<br>  
+
| <br>  
| <br>
+
| done (free)<br>  
+
| <br>  
| done (free)<br>
+
| <br>  
+
| 20d<br>  
| <br>
+
| <br>  
+
| <br>  
| <br>
+
+
| 20d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|351238}}
 
| {{bug|351238}}
 
|-
 
|-
| bgcolor="#cccccc" | Compile &amp; generate contextual expressions
+
| bgcolor="#cccccc" | Compile &amp; generate contextual expressions  
+
| 10d  
| 10d
+
| <br>  
+
| <br>  
| <br>
+
| {{bug|352666}}  
+
| 10d  
| <br>
+
| <br>  
+
| <br>  
| {{bug|352666}}
+
+
| 10d
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|352666}}
 
| {{bug|352666}}
 
|-
 
|-
| bgcolor="#cccccc" | Watch expressions<br>
+
| bgcolor="#cccccc" | Watch expressions<br>  
+
| 5d<sup>[1]</sup><br>  
| 5d<sup>[1]</sup><br>
+
| <br>  
+
| <br>  
| <br>
+
| {{bug|351240}}  
+
| 4d<sup>[1]</sup><br>  
| <br>
+
| <br>  
+
| <br>  
| {{bug|351240}}
+
+
| 4d<sup>[1]</sup><br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|351241}}
 
| {{bug|351241}}
 
|-
 
|-
| bgcolor="#cccccc" | Run to line<br>
+
| bgcolor="#cccccc" | Run to line<br>  
+
| <br>  
| <br>
+
| done ({{bug|346256}})<br>  
+
| <br>  
| done ({{bug|346256}})<br>
+
| <br>  
+
| 1d<br>  
| <br>
+
| done ({{bug|352593}})<br>  
+
| <br>  
| <br>
+
+
| 1d<br>
+
+
| done<br>
+
+
| <br>
+
+
 
| <br>
 
| <br>
 
|-
 
|-
| bgcolor="#cccccc" | Drop to frame<br>
+
| bgcolor="#cccccc" | Drop to frame<br>  
+
| <br>  
| <br>
+
| done (free)<br>  
+
| <br>  
| done (free)<br>
+
| <br>  
+
| 3d<br>  
| <br>
+
| <br>  
+
| <br>  
| <br>
+
+
| 3d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|351239}}
 
| {{bug|351239}}
 
|-
 
|-
| bgcolor="#cccccc" | Hover value in source editor<br>
+
| bgcolor="#cccccc" | Hover value in source editor<br>  
+
| 4d<br>  
| 4d<br>
+
| <br>  
+
| {{bug|351872}}  
| <br>
+
| <br>  
+
| 4d<br>  
| {{bug|351872}}
+
| <br>  
+
| <br>  
| <br>
+
+
| 4d<br>
+
+
| <br>
+
+
| <br>
+
+
 
| {{bug|351872}}
 
| {{bug|351872}}
 
|}
 
|}
  
 
<br>  
 
<br>  
 
  
 
[1] Depends on {{bug|352666}} which is sized at 10 days<br>  
 
[1] Depends on {{bug|352666}} which is sized at 10 days<br>  
 
  
 
[2] Depends on {{bug|352771}} which is sized at 2 days  
 
[2] Depends on {{bug|352771}} which is sized at 2 days  
 
 
[3] Not currently supported in EDT JavaGen so it can't be worked on. Requires the generator provide a variable adapter as described in #2 above, in which case the work for this becomes writing an adapter for the runtime ArrayDictionary object - which again, can't be worked on until the base generator supports the type. If someone else extends our generator to support ArrayDictionary, they'll have to write their own adapter.
 
 
  
 
[4] Sizings for JavaScript debug assume a direct port of the RBD RUI Debugger
 
[4] Sizings for JavaScript debug assume a direct port of the RBD RUI Debugger

Revision as of 16:34, 17 August 2011

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


Function Java
JavaScript

Sizing
0.7
1.0
Future
Sizing[4]
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

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 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)



done (bug 351854)
  • 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
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

[4] Sizings for JavaScript debug assume a direct port of the RBD RUI Debugger